在下面的代码中,我使用了LinearLayout中layout_weight = 1和layout_width(或layout_height)等于0的组合。 一个问题是为什么在第二个LinearLayout中,第二个按钮和第一个按钮不占用相等的空间?它们具有相同的权重(layout_weight = 1),因此它们应具有相同的空间。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout01"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/TextView02"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1.0"
android:text="wreoiwe roiwej roiwejr weoirjweoirjwoeirjoweijrowerjowejorjweoirjwoeiwoi" >
</TextView>
<LinearLayout
android:id="@+id/LinearLayout02"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button
android:id="@+id/Button01"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:text="Submit" >
</Button>
<Button
android:id="@+id/Button02"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.0"
android:text="Cancelrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr" >
</Button>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:3)
这是因为第二个LinearLayout
是wrap_content
而不是layout_weight
的工作方式。
来自文档:
较大的权重值允许它展开以填充父视图中的任何剩余空间。
如果LinearLayout
位于wrap_content
且未填满整个屏幕,则父视图中不再有“剩余空间”。一切都应该是应有的大。它不会扩展较小的按钮,因为wrap_content
处的父级没有更多空间可以扩展。
您可以通过将第二个LinearLayout
更改为match_parent
进行测试,您会看到每个按钮占据屏幕的一半。
答案 1 :(得分:1)
如果你想在textview和下一行中有一行,那么你需要在第二个linearlayout上放置占据总宽度50%的两个底部
android:layout_width="fill_parent"