2017-03-09 8 views
1

申し訳ありません。 私は響板を作成しようとしましたので、私はこのリクそれを設計することを決めた: https://gyazo.com/2a08bcd731fb1cfeb07e72f75bc05e7eアクティビティにコードを記述しない2列のグリッドビュー? - Androidスタジオ

すべてがうまく、私は私のHuawei社P8ライトにし、サムスン銀河S7でそれをテストし、すべてが大丈夫だった働きました。 しかし、私はBluestacksまたはNoxplayerでそれをしようとした場合、それは次のようになります。ここでは https://gyazo.com/84d878061234c25ae872d4ed2491f2f4

が、私はこれを取得するために使用されるコードは次のとおりです。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:ads="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <GridLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      <Button 
       android:id="@+id/button1" 
       android:layout_width="100dp" 
       android:layout_height="100dp" 
       android:layout_columnWeight="1" 
       android:layout_rowWeight="1" 
       android:layout_column="0" 
       android:layout_row="0" 
       android:onClick="button1" 
       android:text="Button"/> 

      <Button 
       android:id="@+id/Button2" 
       android:layout_width="100dp" 
       android:layout_height="100dp" 
       android:layout_columnWeight="1" 
       android:layout_rowWeight="1" 
       android:layout_column="1" 
       android:layout_row="0" 
       android:onClick="Button2" 
       android:text="Button"/> 

      <Button 
       android:id="@+id/Button3" 
       android:layout_width="100dp" 
       android:layout_height="100dp" 
       android:layout_columnWeight="1" 
       android:layout_rowWeight="1" 
       android:layout_column="0" 
       android:layout_row="1" 
       android:onClick="Button3" 
       android:text="Button"/> 

      <Button 
       android:id="@+id/Button4" 
       android:layout_width="100dp" 
       android:layout_height="100dp" 
       android:layout_rowWeight="1" 
       android:layout_columnWeight="1" 
       android:layout_column="1" 
       android:layout_row="1" 
       android:onClick="Button4" 
       android:text="Button"/> 

       //and 200 buttons more 

    </GridLayout> 

</ScrollView> 

私は何かがそのコードと間違っている知っている例えば "グリッドレイアウト"。 しかし、私はそれをどのようにしてどうやってプログラムするのか分かりません。 多くの人々がそれを説明しようとし、私はRecyclerViewまたはGridViewを使うべきだと言いましたが、誰も私のサンプルコードを正しいコードに変更しませんでした。誰もが300行のexplanaitionsのようなリンクを送ってくれました。私は英語でとても悪いので、彼らが私に説明したいことを理解することはできません。誰かが例として私にこれを説明できるなら、私はとてもうれしいでしょう。

私はこの問題は、次の2行だと思う:

android:layout_width="100dp" 
android:layout_height="100dp" 

が、私は「fill_parent」にそれらの両方を設定した場合、ボタンは、エッジの外に広がっています。 MainActivityにコードを書くことなく、すべての画面サイズに適合するコードを書くことは可能ですか?

誰かがそれをPSを右:)

を行う方法を私を見ることができれば、私はとても幸せになるには、私が15歳のドイツ人の少年よ、私を炎しないでください、私は英語でそんなに悪いんだ、なぜthatsの。

+0

これらのアイテムは動的ですか? –

+0

グリッドアイテムビューを表示するxml –

+0

なぜ、すべてのボタンのレイアウトを作成しているのですか?これを処理するために、RecyclerViewをGridLayout Managerで使用するだけです。あなたは1つのボタンのレイアウトを作成し、それを膨張させる必要がありますグリッドレイアウトマネージャー –

答えて

2

GridLayoutではなく、RecyclerViewを使うことをお勧めします。 RecyclerViewでは、GridLayoutManagerを使用できます。

これは、画面の互換性を維持し、任意の数の値をリストに追加するのに役立ちます。 XMLレイアウト設計で管理する必要はありません。

0

私は非常にGridLayoutManagerRecyclerViewを使用することをあなたにお勧めしますが、あなたはRecyclearViewを実装しますが、あなたのコードを変更したくない場合は、このコードの2行を変更しようとする必要があります

android:layout_width="100dp" 
android:layout_height="100dp" 

場合幅と高さを100dpに設定すると、ボタンは常に100dpになります。 だから、親のレイアウトとしてLinearLayoutを使用すると、このように、一つ一つのボタンにandroid:layout_weightを使用する必要があります。このように

android:layout_width="0dp" 
android:layout_weight = "1"; 
android:layout_height="100dp" 

同じ生のボタンはスペースの量を分割します。

関連する問題