Android 为什么此线性布局与父级不匹配?

Android 为什么此线性布局与父级不匹配?,android,xml,button,layout,android-linearlayout,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

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

这是我的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>
但我得到了这个结果:

LinearLayout与父项不匹配,它仅填充屏幕的一半

如何设置与整个父级匹配的线性布局

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

另外,我是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">
如果您只处理一个活动和一个布局,那么这应该可以解决这个问题。如果您有多个片段,每个片段都有不同的大小,那么这可能是一个不同的故事


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

如果您想滚动数百行甚至更多行,那么您需要查看ListView、GridView或RecyclerView。