如何使用线性布局填充空间

时间:2014-08-20 08:26:47

标签: android android-layout android-linearlayout

我正在使用带有6个按钮的线性布局。
根据权限,按钮设置为可见或不可见。

Button1的 BUTTON2 BUTTON3 将Button4 Button5 Button6

基于用户权限

Button1的

将Button3 将Button4

Button6

我的问题是:有没有办法让显示为

Button1的 BUTTON3 将Button4 Button6

android xml for layouts可以管理这个,如果是的话怎么办?

4 个答案:

答案 0 :(得分:1)

您只需在linearlayout中设置水平方向

android:orientation="horizontal"

答案 1 :(得分:1)

这是你的布局请检查。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="6" >

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

    <Button
        android:id="@+id/btn2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button 2"
        android:visibility="gone" />

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

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

    <Button
        android:id="@+id/btn5"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Button 5"
        android:visibility="gone" />

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

</LinearLayout>

答案 2 :(得分:0)

您可以使用LinearLayout Layout Weight

中的http://developer.android.com/guide/topics/ui/layout/linear.html#Weight来完成此操作

但是当您动态更改设置ot按钮时,您可能必须以编程方式执行此操作,因为您只能使用LinearLayout.LayoutParams这样做:

   LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                         LayoutParams.MATCH_PARENT,
                         LayoutParams.MATCH_PARENT, 0.5f);


   button.setLayoutParams(params);

答案 3 :(得分:0)

实现目标:

1 - 将LinearLayout宽度设置为match_parent,将其方向设置为水平:

android:layout_width="match_parent"
android:orientation="horizontal"

这将使您的按钮排成一排。

2 - 将所有按钮权重设置为1,将宽度设置为0dp:

android:layout_weight="1"
android:layout_width="0dp"

这将使您的按钮以百分比水平填充空间(每个按钮将被赋予相同的宽度)

3 - 如果您以编程方式将可见性设置为View.GONE,则隐藏按钮将采用无空间,让其他按钮留出更多空间(将自动增长大小)。通过将可见性设置为View.VISIBLE,可见按钮将再次回收其空间并且Buttonn宽度将缩小