2017-03-13 11 views
0

2列のボタンでサウンドボードを作成しようとしましたが、スクロールしたいと思います。この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を設定するにはどうすればよいですか?

もう1つの質問は、100行を追加すると、このScrollviewは自分の仕事をしていますか? 100行をスクロールするにはどうしたらいいですか?

P.S私はAndroidスタジオで新しいです、私の小さな知識を申し訳ありません。あなただけの1つの活性およびレイアウトを扱っている場合、これは問題を修正する必要があり

<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

数百(またはそれ以上)の行をスクロールしたい場合は、ListView、GridView、またはRecyclerViewを調べる必要があります。 –

答えて

1

はこれを試してみてください。あなたが複数の断片を持ち、それぞれが異なるサイズを持っているなら、それは別の話かもしれません。


100行をハードコードする代わりに、RecyclerViewまたはGridViewを使用します。それはより良い解決策です。

関連する問題