我有3个孩子的线性布局。
其中两个应该具有相同的宽度。中间的一个孩子应该随心所欲地成长。两个宽度相等的孩子应该分开剩下的空间。
|<-- equal width --> <-- a gorwing child --> <-- euqal width -->|
如何使用linearlayout进行此类安排?
由于
答案 0 :(得分:3)
试试这个:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Left" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Middle Button Long Text " />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Right" />
</LinearLayout>
设置中间按钮的宽度android:layout_width="wrap_content"
选项2
我建议使用它...使用相对布局代替。在android:layout_alignParentLeft="true"
和android:layout_alignParentRight="true"
的帮助下,您可以实现布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/bt_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:minWidth="0dp"
android:text="Left" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/bt_right"
android:layout_toRightOf="@+id/bt_left"
android:text="Middle Button Long Text Middle Button Long Text Middle Button Long Text Middle Button Long Text" />
<Button
android:id="@+id/bt_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:minWidth="0dp"
android:text="Right" />
</RelativeLayout>
输出:
答案 1 :(得分:0)
试试这个
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="Button 1" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button 2" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:text="Button 3" />
</LinearLayout>
答案 2 :(得分:0)
使用LinearLayout
,您无法像往常一样获得预期的结果。而不是LinearLayout
使用RelativeLayout
。
这是完全正常工作的代码。试试这个:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/button_middle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:maxLines="1"
android:text="MIDDLE GROWING" />
<Button
android:id="@+id/button_left"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/button_middle"
android:maxLines="1"
android:text="EQUAL" />
<Button
android:id="@+id/button_right"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/button_middle"
android:maxLines="1"
android:text="EQUAL WIDTH" />
</RelativeLayout>
预期输出:
仅供参考,我使用了3种布局来理解它的完美运作。
答案 3 :(得分:-1)
将这些放在您想要的任何地方,但将宽度和高度更改为您喜欢的
<Button
android:id="@+id/xxx"
android:layout_width="120dp"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="@drawable/draw"/>
<Button
android:id="@+id/yyy"
android:layout_width="120dp"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:background="@drawable/draw"/>
<Button
android:id="@+id/zzz"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignParentBottom="true"
android:layout_toRightOf="@id/xxx"
android:layout_toLeftOf="@id/yyy"
android:background="@drawable/draw_draw"/>
实际上它不需要LinearLayout或RelativeLayout但你可以将它们设置为任何组视图的子视图,但我建议不要这样做,因为我的建议对内存使用更有效。