1

現在、レイアウトにボタンをプログラムでlinearLayoutに追加しています。ボタンが画面の幅を超えるまで、これはうまく機能します。それらを次の行にインテリジェントにロールオーバーさせる方法はありますか?

XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    tools:context=".MainActivity" >



    <LinearLayout

        android:id="@+id/linearLayout1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:orientation="horizontal"

        android:layout_alignParentTop="true" >

    </LinearLayout>



    <Button

        android:id="@+id/button1"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_alignParentBottom="true"

        android:layout_alignParentRight="true"

        android:onClick="doThis"

        android:text="Button" />



</RelativeLayout>

私の onClick コード:

public void doThis(View view){

Button myBtn = new Button(this);

LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout1);

myBtn.setText("hello");

layout.addView(myBtn);
}

このコードは機能しますが、追加された 3 番目のボタンの後、画面から消え始めます。アドバイスをいただければ幸いです。

doThis の後、4 回実行されます。

ここに画像の説明を入力

doThis の後、10 回実行されます。

ここに画像の説明を入力

4

1 に答える 1

0

LinearLayouts は一方向 (この場合は水平方向) にのみ展開されるため、自動的に「ラップ」する方法はありません。スクロールバーが必要な場合は、ScrollView にカプセル化できますが、それでも 1 行になります。

あなたがしていることにより適しているのは、GridView ( http://developer.android.com/reference/android/widget/GridView.html ) です。グリッドに編成されたエントリを入力する ListAdapter を提供します。

ここで利用できる良い GridView の例があります: http://www.mkyong.com/android/android-gridview-example/

于 2013-07-01T23:40:08.287 に答える