0

次のように、線形レイアウトでビューを動的に追加しています。

xml:

<LinearLayout
            android:id="@+id/part1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:gravity="right"
            android:orientation="horizontal" >
 </LinearLayout>

ジャワ:

    View linearLayout = findViewById(R.id.part1);

    ((LinearLayout) linearLayout).removeAllViews();

    for (int i = 0; i  < 15; i ++){


        TextView tv = new TextView(this);
        tv.setText(String.valueOf(i));
        LinearLayout.LayoutParams lay = new LinearLayout.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);

        tv.setLayoutParams(lay);
        tv.setBackgroundResource(R.drawable.msg);
        tv.setId(i);
        ((LinearLayout) linearLayout).addView(tv);

    }

今、私は2つの質問があります:

1)テキストビューは水平方向に正しく追加されますが、画面サイズに合わない場合、それらの一部は表示されません。水平スペースがいっぱいになったら、強制的に新しい行に追加し続けるにはどうすればよいですか?

2) テキストビューは左から右に追加されますが、右から左に追加する方法は?

ありがとう

4

1 に答える 1

0

ViewGroups がどのように機能するかを理解する必要があります。この場合、LinearLayout は、明示的に指定しない限り、位置計算を行わずに項目を水平または垂直に追加します (次の行へのジャンプはそれらの 1 つではありません...)。それを項目と考えてください。指定したスペースにのみアイテムを表示するホルダー (そのため、一部の要素が消えます...)。デフォルトでは、LinearLayout がアイテムを配置する方法は、左から右または上から下です。これがニーズに合わない場合、Android が持っている ViewGroup オプションのいずれかを選択できます。最も重要なものは次のとおりです。

RelativeLayout FrameLayout TableLayout AbsoluteLayout (非推奨)

画面上である種の Free Draw が必要な場合は、いつでも View オブジェクトに移動し、onDraw をオーバーライドして、そのオブジェクトのキャンバスで遊ぶことができます...

よろしく!

于 2013-06-05T17:08:21.150 に答える