我想要实现的目标我确信可以通过代码完成,但我需要通过声明性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
提前多多谢谢!
答案 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