将Android按钮设置为另一个按钮高度的一半

时间:2013-04-12 23:38:56

标签: android android-layout android-xml

我想要实现的目标我确信可以通过代码完成,但我需要通过声明性XML来完成(如果可能的话)。我想将一个按钮设置为另一个按钮的一半高度。

我在ViewGroup文档中发现你可以引用其他组件,而evens说了这么多:

  

这也可能是对包含值的资源(格式为“@ [package:] type:name”)或主题属性(格式为“?[package:] [type:] name”)的引用这种类型。

我不知道如何将其转化为我需要的东西。

我的活动xml的基本布局如下:

  

< RelativeLayout ...>

<LinearLayout ... >

    <fragment ... />

    <LinearLayout ... >

        <ImageButton
            ...
            android:id="@+id/userButton"
            android:layout_height=" *tag_button:layout_height / 2? "
            ... />

        <ImageButton
            ...
            android:id="@+id/searchButton"
            android:layout_height=" *tag_button:layout_height / 2? "
            ... />
    </LinearLayout>
</LinearLayout>

<Button
    android:id="@+id/tag_button"
    android:layout_height="wrap_content"
    ... />

&LT; / RelativeLayout的&GT;

  

我真正想要的是设置userButton:layout_height和searchButton:layout_height等于tag_button的一半:layout_height

提前多多谢谢!

2 个答案:

答案 0 :(得分:1)

如果您要将两个按钮都放在线性布局中,则可以使用布局权重

<LinearLayout ... >

    <ImageButton
        ...
        android:id="@+id/userButton"
        android:layout_height="0dip"
        android:layout_weight="1"
        ... />

    <ImageButton
        ...
        android:id="@+id/searchButton"
        android:layout_height="0dip"
        android:layout_weight="2"
        ... />
</LinearLayout>

我不确定是否有办法直接引用XML中另一个元素的宽度。但是你可以让布局为你工作。

答案 1 :(得分:0)

你可以使用这样的重量原理:

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

<Button android:id="@+id/btnUser"
   android:layout_width="wrap_content"
   android:layout_height="0dp"
   android:layout_weight="1" >

<Button android:id="@+id/btnSearch"
   android:layout_width="wrap_content"
   android:layout_height="0dp"
   android:layout_weight="1" >

<Button android:id="@+id/btnTag"
   android:layout_width="wrap_content"
   android:layout_height="0dp"
   android:layout_weight="2" >

</LinearLayout>
这样,你的按钮(搜索和用户)将是按钮标签高度的一半。

注意:权重概念仅在LinearLayout中可用,因此如果您有RelativeLayout,请尝试在其中添加LinearLayout类型的子布局,然后,您可以使用android:layout_weight