如何使用Android LinearLayout创建跨越多行的布局?

时间:2018-09-24 22:33:57

标签: android android-linearlayout imagebutton android-imagebutton

如何使用LinearLayout在此布局中显示这些ImageButton?我已经使用TableLayout进行了尝试,但是它对我不起作用,因为并非所有带有ImageButtons的行都显示为它的子项。

Layout

2 个答案:

答案 0 :(得分:0)

这可以通过在布局内部嵌套布局来实现。提示;

<LinearLayout
 android: orientation = "vertical">
     <LinearLayout
      android: orientation = "horizontal">•
          <Button.../>
          <Button.../>
          <Button.../>
          <Button.../>
     </LinearLayout>

     <LinearLayout
      android: orientation = "horizontal">
          <Button.../>
          <Button.../>
          <Button.../>
          <Button.../>
     </LinearLayout>
     <RelativeLayout>
          <LinearLayout
           android: orientation = "horizontal"
           android: id = @+id/"abc">
              <Button.../>
              <Button.../>
              <Button.../>
          </LinearLayout>
          <LinearLayout
           android: orientation = "horizontal">•
              <Button.../>
              <Button.../>
              <Button.../>
          </LinearLayout>
              <Button...
               android: layout_toRightOf=" @id/abc"/>
     </RelativeLayout>


</LinearLayout>

您也可以在ConstraintLayout中嵌套布局。这完全取决于您想要达到结果的方式

答案 1 :(得分:0)

经过一番摆弄之后,我现在设法设计了上述布局。当然,令人惊讶的是,有很多嵌套的线性布局,但是至少我可以管理它。 也许其他人有一个想法避免这些嵌套的线性布局,如果没有,那我就保留它,因为它仍然可以实现其目的。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />
    </LinearLayout>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="2"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="3"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:orientation="horizontal">

                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1" />

                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1" />

                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1"
                android:orientation="horizontal">

                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1" />

                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"/ >

                <Button
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1" />
            </LinearLayout>
        </LinearLayout>

        <Button
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"/>
    </LinearLayout>
</LinearLayout>