0

私はアンドロイドの世界に不慣れで、この問題に頭を悩ませています。4 つのボタンを備えたグリッドビューがあり、画面を 4 つの等しい高さと幅のボタンに分割したいと考えています。(カスタム dp を割り当てない場合) . layout_weight を使用しようとしましたが、うまくいきませんでした:/ これが私のコードの例です。これは、グリッドビューを使用しているクラスです

public class DietAdminPanel extends Activity {

private Button mydiets_button;
private ArrayList<String> data;
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.gridview_layout);
    data = new ArrayList<String>();
    data.add("Test1");
    data.add("Test2");
    data.add("Test3");
    data.add("Test4");
    Log.d("On create", "success");
    GridView gridview = (GridView)findViewById(R.id.gridview);
    gridview.setAdapter(new GridViewAdapter(this, data));

gridview_layout.xml

 <?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:columnWidth="30dp"
    android:numColumns="2"
     android:verticalSpacing="0dp"
     android:horizontalSpacing="0dp"
     android:stretchMode="columnWidth"
     android:fillViewport="true"

     >

</GridView>

および gridview_item_layout.xml (カスタム アダプタ用)

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

    <TextView android:id="@+id/gridview_textview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="test"/>
</LinearLayout>

実際の見た目はこんな感じ

http://i.stack.imgur.com/Iah2y.jpg

これは、グリッドビューを次のように表示する方法です(これにはdpで幅を使用しましたが、それは私が望むものではありません:/)

http://i.stack.imgur.com/xHgkj.jpg

何かご存知の方教えてください(;_;)

4

2 に答える 2

1

GridView は水平方向にのみスケーリングします。つまり、水平方向にのみ同じサイズで定義した数の列を作成します。

各セルの高さは、その中のビューによって異なります

于 2013-08-06T04:20:17.190 に答える
-1

GridViewは、すべてを同時に表示することはできない多数の項目を表示するためのものであるため、それらはスクロールして表示されます。android:verticalSpacing="50dp"それでも、アイテム間の垂直方向のスペースを設定するために使用できます。

ただし、画面上に同時に表示できる固定数の項目が少ない場合は、代わりにTableLayoutorを使用することをお勧めします。GridLayout

于 2013-08-06T04:31:27.717 に答える