Android 为什么此线性布局与父级不匹配?
我试图创建一个带有两列按钮的音板,我也想滚动它 这是我的XML: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
<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。