线性布局重力问题?

时间:2012-02-28 12:56:22

标签: android android-layout

有线性布局的问题。我认为有些东西很奇怪。所有这些布局相同,但后退按钮移动相关图标按钮。我想在左侧放回按钮,btn_header_what_search_user按钮想要正确的站点。但是他们正在移动相关图标(中心图标)。为什么?以及如何在左侧按回按钮。

enter image description here

我的代码:`

<LinearLayout android:layout_height="44dip"
              android:layout_width="320dip"
              android:background="@drawable/header_320_44dip">
    <ImageView
            android:layout_width="121dip"
            android:layout_height="32dip"
            android:layout_gravity="center"
            android:layout_marginLeft="90dip"
            android:background="@drawable/icon">

    </ImageView>

    <ImageView
            android:layout_width="52dip"
            android:layout_height="32dip"
            android:layout_gravity="left"
            android:background="@drawable/btn_back_52x32">

    </ImageView>


    <ImageButton
            android:layout_height="34dip"
            android:layout_width="64dip"
            android:id="@+id/btn_header_what_search_user"
            android:layout_marginLeft="0dip"
            android:background="@drawable/btn_nedit_nontext_64x34">
    </ImageButton>
</LinearLayout>

`

3 个答案:

答案 0 :(得分:3)

您应该使用相对布局

<RelativeLayout android:layout_height="44dip"
              android:layout_width="320dip"
              android:background="@drawable/header_320_44dip">
    <ImageView
            android:layout_width="121dip"
            android:layout_height="32dip"
           android:layout_centerInParent="true"
            android:layout_marginLeft="90dip"
            android:background="@drawable/icon">

    </ImageView>

    <ImageView
            android:layout_width="52dip"
            android:layout_height="32dip"
            android:layout_alignParentLeft="true"
            android:background="@drawable/btn_back_52x32">

    </ImageView>


    <ImageButton
            android:layout_height="34dip"
            android:layout_width="64dip"
            android:id="@+id/btn_header_what_search_user"
            android:layout_marginLeft="0dip"
android:layout_alignParentright="true"
            android:background="@drawable/btn_nedit_nontext_64x34">
    </ImageButton>
</RelativeLayout>

答案 1 :(得分:2)

LinearLayout不能很好地处理沿主方向的重力(即水平LinearLayout不支持left,right或center_horizo​​ntal,以及垂直顶部,底部或center_vertical)。
您可以尝试RelativeLayout并使用layout_alignParentLeft / layout_alignParentRight属性(或任何其他可用的属性)来获得正确的结果。

答案 2 :(得分:0)

另一种解决方案可能是使用布局权重。将总重量设置为3,然后为每个图像视图设置1的权重。这样,布局分为3个部分,您应该能够调整每个部分的重力。这样的事情:

<LinearLayout
   ...
   android:weightSum="3" >

   <ImageView
       ...
       android:layout_width="0dp"
       android:layout_weight="1" />