【问题标题】:Horizontal LinearLayout inside Vertical LinearLayout垂直线性布局内的水平线性布局
【发布时间】:2017-08-26 05:21:24
【问题描述】:

我想显示一个水平线性布局,其中内容 3 imageview 在垂直线性布局内

​​>

但是你可以看到我有一个问题

只显示第一个Imageview,并且他在中间。

我改变了另一个 Imageview(左和右)的重力,但没有任何改变。

代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/activity_form"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        tools:context="info.androidhive.navigationdrawer.activity.FormActivity"
        android:weightSum="1"
        android:theme="@style/ThemeOverlay.AppCompat.Dark">


        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Ajouter Votre Annonce"
            android:gravity="center"
            android:textColor="#000000"
            android:textSize="22sp"
            />


        <Spinner
            android:id="@+id/spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="34dp"
            android:layout_below="@+id/textView"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:entries="@array/cat_arrays"
            android:prompt="@string/cat_prompt"
            />


        <RadioButton
            android:id="@+id/radioButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="23dp"
            android:text="Offre"
            android:layout_below="@+id/spinner"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:textColor="#000000"
            />



        <RadioButton
            android:id="@+id/radioButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/radioButton"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:text="Demande"
            android:textColor="#000000"
            />


        <Spinner
            android:id="@+id/spinner4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_below="@+id/spinner3"
            android:layout_marginTop="17dp"
            android:entries="@array/vil_arrays"
            android:prompt="@string/vil_prompt"
            android:textColor="#808080"
            />

        <EditText
            android:id="@+id/editText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="Titre de l'Annonce"
            android:layout_below="@+id/spinner4"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:textColorHint="#808080"
            android:textColor="#000000"
            />

        <EditText
            android:id="@+id/editText8"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="Prix en UM"
            android:layout_below="@+id/spinner4"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:textColorHint="#808080"
            android:textColor="#000000"
            />

        <EditText
            android:id="@+id/editText4"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/editText"
            android:layout_marginTop="16dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="Description"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentBottom="true"
            android:textColorHint="#808080"
            android:paddingBottom="75dp"
            android:textColor="#000000"/>

        <TextView
            android:id="@+id/textView4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="27dp"
            android:text="Vos Photos"
            android:gravity="center"
            android:textColor="#000000"
            android:textSize="22sp"

            />

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal" >

            <ImageView
                android:id="@+id/img1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/imgadd"
                android:gravity="left"
                />

            <ImageView
                android:id="@+id/img2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/imgadd"
                android:gravity="center"/>

            <ImageView
                android:id="@+id/img3"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:src="@drawable/imgadd"
                android:gravity="right"/>


        </LinearLayout>

        <TextView
            android:id="@+id/textView5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/button3"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="23dp"
            android:text="Vos Informations"
            android:gravity="center"
            android:textColor="#000000"
            android:textSize="22sp"
            />

        <RadioButton
            android:id="@+id/radioButton3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/button3"
            android:layout_alignStart="@+id/button3"
            android:layout_below="@+id/textView5"
            android:text="Professionel"
            android:textColor="#000000"
            />

        <RadioButton
            android:id="@+id/radioButton4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/radioButton3"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:text="Particulier"
            android:textColor="#000000"
            />

        <EditText
            android:id="@+id/editText5"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/button3"
            android:layout_alignStart="@+id/button3"
            android:layout_below="@+id/radioButton3"
            android:layout_marginTop="26dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="Nom et Prenom"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:textColorHint="#808080"
            />

        <EditText
            android:id="@+id/editText6"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editText5"
            android:layout_alignParentBottom="true"
            android:layout_alignStart="@+id/editText5"
            android:layout_marginBottom="10dp"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="Telephone"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:textColorHint="#808080"
            />
        <EditText
            android:id="@+id/editText7"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editText6"
            android:layout_alignParentBottom="true"
            android:layout_alignStart="@+id/editText6"
            android:layout_marginBottom="10dp"
            android:ems="10"
            android:inputType="textPassword"
            android:hint="Mot de passe"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:textColorHint="#808080"/>

        <Button
            android:id="@+id/button4"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="36dp"
            android:text="Déposez votre Annonce"
            android:background="#a4c639"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:textColorHint="#808080"/>

    </LinearLayout>
</ScrollView>

【问题讨论】:

    标签: android android-layout android-linearlayout android-gravity


    【解决方案1】:
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    
        <ImageView
           android:id="@+id/img1"
           android:layout_width="0dp"
           android:layout_weight = "1"
           android:layout_height="wrap_content"
           android:src="@drawable/imgadd"/>
    
    
       <ImageView
           android:id="@+id/img2"
           android:layout_width="0dp"
           android:layout_weight = "1"
           android:layout_height="wrap_content"
           android:src="@drawable/imgadd"/>
    
       <ImageView
           android:id="@+id/img3"
           android:layout_width="0dp"
           android:layout_weight = "1"
           android:layout_height="wrap_content"
           android:src="@drawable/imgadd"/>
    
    </LinearLayout>
    

    【讨论】:

    • 很高兴为您提供帮助...!
    【解决方案2】:

    试试这个代码:

    <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal" >
    
            <ImageView
                android:id="@+id/img1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/imgadd"/>
    
            <ImageView
                android:id="@+id/img2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/imgadd"/>
    
            <ImageView
                android:id="@+id/img3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:src="@drawable/imgadd"/>
    
    
        </LinearLayout>
    

    【讨论】:

    • android:weight 不是 android 属性,请使用 android:layout_weight
    • 三张图片要不要包宽?或者你想让这三张图片可以水平滚动?
    【解决方案3】:

    它可以通过多种方式修复。我要做的是将 layout_weight 标签分配给水平线性布局中的所有 3 个图像。像这样的。

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
    
        <ImageView
            android:id="@+id/img1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/imgadd"
            android:layout_weight ="1"
            />
    
        <ImageView
            android:id="@+id/img2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight ="1"
            android:src="@drawable/imgadd"
            />
    
        <ImageView
            android:id="@+id/img3"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight ="1"
            android:src="@drawable/imgadd"
            />
    
    
    </LinearLayout>
    

    同时删除所有三个图像视图中的重力标签。

    【讨论】:

    • 虽然应该将宽度设置为0dp
    • 你的回答也是有效的。谢谢,但它应该是 android:layout_weight 而不是 android:weight ,谢谢