为什么此LinearLayout与父级不匹配?

时间:2017-03-13 20:22:28

标签: android xml button layout android-linearlayout

我尝试用两列按钮创建一个音板,我也想滚动它。

这是我的XML:

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


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

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_weight="1"
            android:gravity="center">

            <Button
                android:id="@+id/button"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="5dp"
                android:layout_weight="1"
                android:background="@drawable/mybutton"
                android:gravity="center"
                android:onClick="button"
                android:padding="3dp"
                android:text="button"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/button1"
                android:layout_width="0dp"
                android:layout_weight = "1"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="button1"
                android:padding="5dp"
                android:text="button1"
                android:textColor="#ffffff"
                android:textSize="20dp" />
        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_weight="1"
            android:gravity="center">

            <Button
                android:id="@+id/button2"
                android:layout_width="0dp"
                android:layout_weight = "1"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="button2"
                android:padding="3dp"
                android:text="button2"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/button3"
                android:layout_width="0dp"
                android:layout_weight = "1"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginBottom="5dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="button3"
                android:padding="5dp"
                android:text="button3"
                android:textColor="#ffffff"
                android:textSize="20dp" />
        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_weight="1"
            android:gravity="center">

            <Button
                android:id="@+id/button4"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="5dp"
                android:layout_weight="1"
                android:background="@drawable/mybutton"
                android:gravity="center"
                android:onClick="button4"
                android:padding="3dp"
                android:text="button4"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/button5"
                android:layout_width="0dp"
                android:layout_weight = "1"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="button5"
                android:padding="5dp"
                android:text="button5"
                android:textColor="#ffffff"
                android:textSize="20dp" />
        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:layout_weight="1"
            android:gravity="center">

            <Button
                android:id="@+id/button6"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="5dp"
                android:layout_weight="1"
                android:background="@drawable/mybutton"
                android:gravity="center"
                android:onClick="button6"
                android:padding="3dp"
                android:text="button6"
                android:textColor="#ffffff"
                android:textSize="20dp" />

            <Button
                android:id="@+id/button7"
                android:layout_width="0dp"
                android:layout_weight = "1"
                android:layout_height="match_parent"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp"
                android:layout_marginBottom="5dp"
                android:layout_marginTop="10dp"
                android:background="@drawable/mybutton"
                android:onClick="button7"
                android:padding="5dp"
                android:text="button7"
                android:textColor="#ffffff"
                android:textSize="20dp" />

        </LinearLayout>

    </LinearLayout>
</ScrollView>

但是我得到了这个结果:https://gyazo.com/f7b60acbdb68c1de3faad3f96b5b8749

LinearLayout与父级不匹配,只填充屏幕的一半。

如何设置与整个父元素匹配的LinearLayout?

我的第二个问题是,如果我要再添加100行,这个Scrollview会完成他的工作吗?我怎么能这样做才能滚动100行?

P.S我是Android Studio的新手,对不起我的小知识。

1 个答案:

答案 0 :(得分:1)

试试这个:

http://php.net/manual/en/context.http.php

如果您只处理1个活动和布局,这应该可以解决问题。如果你有多个片段,每个片段都有不同的大小,那可能是另一回事。

使用RecyclerView或GridView代替硬编码100行。这是一个更好的解决方案