是否可以通过programmaticaly更改视图外观顺序?
实施例。
<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
答案 0 :(得分:3)
大多数(如果不是全部)xml命令都有相应的编程调用。假设你的意思是“改变”是在用xml充气后添加或删除一个视图,那么答案是肯定的,但这并不意味着你应该这样做。
如果要动态添加/删除视图,最好动态创建整个布局。相信我,一旦你知道如何与xml布局相比并不难。我已经读过一些可能存在一些问题的地方,如果你混合使用xml和动态布局,我无法证明这个说法,但我所做的是用xml充气一个空的linearlayout,然后动态添加所有的视图我想要。
答案 1 :(得分: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);