为什么这个线性层次与父母不匹配



我试图创建一个带有两个按钮的音板,我也想滚动它。

这是我的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/f7b60acbdb68c1de3faad3f96b5b5b8749

线安排与父匹配,仅填充屏幕的一半。

如何设置与整个父母匹配的线性层压?

我的第二个问题是,如果我要再增加100行,这个滚动浏览会来做他的工作吗?我该怎么做才能滚动100行?

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

尝试以下:

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

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


使用Recyclerview或GridView,而不是硬编码100行。这是一个更好的解决方案

最新更新