在LinearLayout上的“android:layout_weight”时,LinearLayout中的ImageView不显示

时间:2014-08-18 08:08:19

标签: android android-layout

这是我的代码

<LinearLayout android:layout_width="wrap_content"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_height="wrap_content">
        <RadioButton android:id="@+id/preference_question_optionTwo" android:layout_width="fill_parent"
            android:layout_height="wrap_content"/>
         <LinearLayout 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:orientation="vertical">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />
            <TextView 
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </LinearLayout>
    </LinearLayout>

现在,当我在LinearLayout上应用 android:layout_weight =&#34; 1&#34; 时,图像不会出现。不显示此属性图像。

我想要的是将布局分为两部分。两个部分包含上面相同的代码,即单选按钮,除此之外还有图像和文本

更新这就是我想要的方式

enter image description here

这是我得到的输出 enter image description here

3 个答案:

答案 0 :(得分:3)

您没有分享其余的代码或您想要如何将屏幕划分为两个:垂直或水平。

<LinearLayout android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >
    <LinearLayout android:layout_width="0dp"
        android:orientation="horizontal"
        android:layout_height="match_parent" 
        android:layout_weight="1" >
        <RadioButton android:id="@+id/preference_question_optionOne" android:layout_width="wrap_content"
            android:layout_height="match_parent"/>
        <LinearLayout 
            android:layout_height="match_parent"
            android:layout_width="wrap_content"
            android:orientation="vertical">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />
           <TextView 
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </LinearLayout>
    </LinearLayout>

    <LinearLayout android:layout_width="0dp"
        android:orientation="horizontal"
        android:layout_height="match_parent"
        android:layout_weight="1" >
        <RadioButton android:id="@+id/preference_question_optionTwo" android:layout_width="wrap_content"
            android:layout_height="match_parent"/>
        <LinearLayout 
            android:layout_height="match_parent"
            android:layout_width="wrap_content"
            android:orientation="vertical">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />
           <TextView 
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

似乎你对体重概念感到困惑。我想这会更加清晰。您应该根据这些权重划分父级的宽度或高度。另外,请不要忘记将其与0dp一起使用。

如果要垂直划分父级,请使用以下组合:

android:layout_height="0dp"
android:layout_width="match_parent" <!--or wrap_content-->
android:layout_weight="x"

和横向

android:layout_height="match_parent" <!--or wrap_content-->
android:layout_width="0dp"
android:layout_weight="x"

答案 1 :(得分:1)

布局权重属性适用于线性布局中的元素。您应该为屏幕的每一半提供相同的重量,并将它们放在线性布局中。

这就是你需要的:

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

<!-- first half -->
<LinearLayout android:layout_width="wrap_content"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_height="wrap_content">
        <RadioButton android:id="@+id/preference_question_optionTwo" android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
         <LinearLayout 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:orientation="vertical">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />
            <TextView 
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </LinearLayout>
    </LinearLayout>

<!-- first half, same weight as first half -->
<LinearLayout android:layout_width="wrap_content"
        android:orientation="horizontal"
        android:layout_weight="1"
        android:layout_height="wrap_content">
        <RadioButton android:id="@id/preference_question_optionTwo" android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
         <LinearLayout 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:orientation="vertical">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_launcher" />
            <TextView 
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"/>
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

答案 2 :(得分:0)

如果您需要将布局分成宽度相同的两个部分,则需要将子宽度设置为fill_parent并将相同的宽度(> 1)设置为子级。

例如:

<LinearLayout android:layout_width="wrap_content"
    android:orientation="horizontal"
    android:layout_height="wrap_content">
    <RadioButton android:id="@+id/preference_question_optionTwo" 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"/>
     <LinearLayout 
        android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />
        <TextView 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"/>
    </LinearLayout>
</LinearLayout>