3

私はAndroid開発の初心者です。GridLayoutを使用してUIデザインを実現しようとしています。

これがシナリオです:

xmlファイルでGridLayoutを次のように定義しました

<GridLayout
    android:id="@+id/gridLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@id/linearLayoutBottomLeft"
    android:layout_alignParentLeft="true"
    android:layout_below="@id/linearLayoutTopLeft"
    android:layout_toLeftOf="@id/textView" >
</GridLayout>

次に、アクティビティのonCreate()メソッドで次のように設定します。

GridLayout gridLayout = (GridLayout) findViewById(R.id.gridLayout);
gridLayout.invalidate();
int rowNumber = 4;
int colNumber = 4;
gridLayout.setRowCount(rowNumber);
gridLayout.setColumnCount(colNumber);

これまでのところ、すべてがうまく機能しています。ただし、そこにはいくつかのボタンもあります。ボタンのクリックイベントで、rowNumberとcolNumberを変更し、実行時に設定しました。それは私が思ういくつかのエラーを引き起こします...

だから私の質問は、gridLayoutの実行時に行番号と列番号を設定できるかどうかです。

これがAndroidで許可されていない場合、上記のようなGUIを実現するための良い習慣は何ですか。

どんな助けでもいただければ幸いです。

4

2 に答える 2

1

gridLayout.removeAllChildren() を実行する必要があります。

Invalidate は、ビューのコンテンツが変更され、再描画する必要があることをビュー システムに知らせる方法です。

于 2014-12-05T21:10:39.200 に答える
0

今日、私はこの問題を解決する方法を見つけました。

xml ファイルで、GridLayout を LinearLayout に置き換え、girdlayout を linearlayout の子として動的に追加しました。ボタン クリック イベント ハンドラで行/列数を変更できるようになりました。

これが良い方法であるかどうかはわかりませんが、パフォーマンスへの影響が発生します。

于 2013-02-27T19:04:39.800 に答える