Android布局 - 连续2个项目

时间:2016-08-02 15:50:26

标签: android android-layout

我有以下布局:

enter image description here

我的根是relativelayout

<LinearLayout
    android:id="@+id/firstLine"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="2"

    >

<com.beardedhen.androidbootstrap.BootstrapLabel
    android:id="@+id/B1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:bootstrapBrand="primary"
    app:bootstrapHeading="h1"
    app:roundedCorners="true"
    android:text="Button 1"
    android:layout_margin="10dp"
    android:layout_weight="1"
    />


    <com.beardedhen.androidbootstrap.BootstrapLabel
        android:id="@+id/B2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:bootstrapBrand="primary"
        app:bootstrapHeading="h1"
        app:roundedCorners="true"
        android:text="Button 2"
        android:layout_margin="10dp"
        android:layout_weight="1"
        />

</LinearLayout>

<LinearLayout
    android:id="@+id/secondLine"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="2"
    android:layout_below="@+id/firstLine"
    >

    <com.beardedhen.androidbootstrap.BootstrapLabel
        android:id="@+id/b3"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:bootstrapBrand="primary"
        app:bootstrapHeading="h1"
        app:roundedCorners="true"
        android:text="B3"
        android:layout_margin="10dp"
        android:layout_weight="1"

        />


    <com.beardedhen.androidbootstrap.BootstrapLabel
        android:id="@+id/b4"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:bootstrapBrand="primary"
        app:bootstrapHeading="h1"
        app:roundedCorners="true"
        android:text="B4"
        android:layout_margin="10dp"
        android:layout_weight="1"

        />

</LinearLayout>

我的目标是制作多行,每行有2个按钮,每个按钮上面都有一个TextView(参见按钮1和按钮2,我需要一个小文本)。

正如你所看到的,第二行没有显示,我在我的应用程序中看不到它,因为第一行占用了所有空间。我怎么能:

  1. 让我的布局使用多行2个按钮?
  2. 在每个按钮上方使用TextView吗?

2 个答案:

答案 0 :(得分:1)

将线性布局高度更改为wrap_content。使用match_parent,使每一行与场景中整个窗口的高度相同。你不想要的。

<LinearLayout
   android:id="@+id/firstLine"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:orientation="horizontal"
   android:weightSum="2" >

要回答第二个问题,请将TextView置于线性布局之间。 (在每个人开始之前)

另外,请确保您的主要布局为LinearLayoutandroid:orientation="vertical"。我认为是,但只是在案件中。

看起来应该是这样的:

<LinearLayout
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>

    <LinearLayout
        android:id="@+id/firstLine"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:weightSum="2"

        >

        <com.beardedhen.androidbootstrap.BootstrapLabel
            android:id="@+id/B1"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:text="Button 1"
            app:bootstrapBrand="primary"
            app:bootstrapHeading="h1"
            app:roundedCorners="true"
            />


        <com.beardedhen.androidbootstrap.BootstrapLabel
            android:id="@+id/B2"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:text="Button 2"
            app:bootstrapBrand="primary"
            app:bootstrapHeading="h1"
            app:roundedCorners="true"
            />

    </LinearLayout>

    <TextView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"/>

    <LinearLayout
        android:id="@+id/secondLine"
        android:layout_below="@+id/firstLine"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:weightSum="2"
        >

        <com.beardedhen.androidbootstrap.BootstrapLabel
            android:id="@+id/b3"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:text="B3"
            app:bootstrapBrand="primary"
            app:bootstrapHeading="h1"
            app:roundedCorners="true"

            />


        <com.beardedhen.androidbootstrap.BootstrapLabel
            android:id="@+id/b4"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:text="B4"
            app:bootstrapBrand="primary"
            app:bootstrapHeading="h1"
            app:roundedCorners="true"

            />

    </LinearLayout>
</LinearLayout>

答案 1 :(得分:0)

由于rootview是RelativeLayout,也许TextViews和Buttons都应该在单独的LinearLayouts中,最上面的一个有android:layout_alignParentTop =“true”,所有其他的LinearLayours使用android:layout_below在下面相互对齐。此外,除非您希望LinearLayouts具有固定高度而不管其内容如何,​​否则LinearLayouts的高度应设置为wrap_content。

<LinearLayout
    android:id="@+id/firstTextViewLine"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:alignParentTop="true"
    android:orientation="horizontal"
    android:weightSum="2">

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

    <TextView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:text="TextView 2" />

</LinearLayout>

<LinearLayout
    android:id="@+id/firstLine"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layoutBelow="@+id/firstTextViewLine"
    android:orientation="horizontal"
    android:weightSum="2">

    <com.beardedhen.androidbootstrap.BootstrapLabel
        android:id="@+id/B1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        app:bootstrapBrand="primary"
        app:bootstrapHeading="h1"
        app:roundedCorners="true"
        android:text="Button 1"
        android:layout_margin="10dp"
        android:layout_weight="1" />


    <com.beardedhen.androidbootstrap.BootstrapLabel
        android:id="@+id/B2"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        app:bootstrapBrand="primary"
        app:bootstrapHeading="h1"
        app:roundedCorners="true"
        android:text="Button 2"
        android:layout_margin="10dp"
        android:layout_weight="1" />

</LinearLayout>

<LinearLayout
    android:id="@+id/secondTextViewLine"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_Below="@+id/firstLine"
    android:orientation="horizontal"
    android:weightSum="2">

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

    <TextView
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:text="TextView 2" />

</LinearLayout>

<LinearLayout
    android:id="@+id/secondLine"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="2"
    android:layout_below="@+id/secondTextViewLine">

    <com.beardedhen.androidbootstrap.BootstrapLabel
        android:id="@+id/b3"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        app:bootstrapBrand="primary"
        app:bootstrapHeading="h1"
        app:roundedCorners="true"
        android:text="B3"
        android:layout_margin="10dp"
        android:layout_weight="1" />

    <com.beardedhen.androidbootstrap.BootstrapLabel
        android:id="@+id/b4"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        app:bootstrapBrand="primary"
        app:bootstrapHeading="h1"
        app:roundedCorners="true"
        android:text="B4"
        android:layout_margin="10dp"
        android:layout_weight="1" />

</LinearLayout>