1

ビューの表示順序をプログラムで変更することはできますか?

例。

                <EditText
                    android:id="@+id/edit_txt_address_location_street"
                    android:layout_width="0dip"
                    android:layout_height="36dp"
                    android:layout_marginBottom="4dp"
                    android:layout_marginRight="4dp"
                    android:layout_marginTop="8dp"
                    android:layout_weight="8"
                    android:background="@drawable/shape_edit_text"
                    android:inputType="textNoSuggestions"
                    android:textColor="@color/black"
                    android:textCursorDrawable="@null" />

                <EditText
                    android:id="@+id/edit_txt_address_location_street_nr"
                    android:layout_width="0dip"
                    android:layout_height="36dp"
                    android:layout_marginBottom="4dp"
                    android:layout_marginLeft="4dp"
                    android:layout_marginRight="4dp"
                    android:layout_marginTop="8dp"
                    android:layout_weight="2"
                    android:background="@drawable/shape_edit_text"
                    android:inputType="textNoSuggestions"
                    android:textColor="@color/black"
                    android:textCursorDrawable="@null" />

xml about は、通常の出現順序を示しています。

1. edit_txt_address_location_street
2. edit_txt_address_location_street_nr

いくつかの条件では、プログラムで出現順序を逆にする必要があります。例えば:

1. edit_txt_address_location_street_nr
2. edit_txt_address_location_street
4

2 に答える 2

3

すべてではないにしても、ほとんどの xml コマンドには、対応するプログラム呼び出しがあります。「変更」が xml で膨らませた後にビューを追加または削除することを意味すると仮定すると、答えはイエスですが、そうするべきだという意味ではありません。

ビューを動的に追加/削除したい場合は、レイアウト全体を動的に作成する方がよいでしょう。方法がわかれば、xml レイアウトと比較してそれほど難しいことではないと信じてください。xml と動的レイアウトの両方を混在させると問題が発生する可能性があることをいくつか読んだことがありますが、そのステートメントを証明することはできませんが、空の線形レイアウトを xml で膨らませてから、すべてのビューを動的に追加することです私が欲しい。

于 2013-06-11T15:04:56.870 に答える
2
EditText location_street = new EditText(this);
location_street.setBackgroundResource(R.drawable.shape_edit_text);

EditText location_street_nr = new EditText(this);
location_street_nr.setBackgroundResource(R.drawable.shape_edit_text);

LinearLayout ll = (LinearLayout)findViewById(R.id.textlayout);
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
ll.addView(location_street, lp);
ll.addView(location_street_nr, lp);
于 2013-06-11T15:12:05.090 に答える