我想知道如何根据条件更改 xml 文件的布局。假设我们有这样的布局..
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/app_background"
android:padding="5dip"
>
<ListView android:id="@+id/xlist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:divider="@drawable/listdivider"
android:dividerHeight="19dp"
/>
<TextView
android:layout_width="fill_parent"
android:background="@drawable/listdivider"
android:layout_height="19dp"
android:visibility="gone"
android:id="@+id/dividerline"
/>
<ListView android:id="@+id/ylist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:divider="@drawable/listdivider"
android:dividerHeight="19dp"
/>
</LinearLayout>
</LinearLayout>
因此,您将两个变量设置为 ListView ,并且基于 xml,“xlist”将出现在“ylist”之前。但对于我的代码,如果满足特定条件,我想切换此 View 的顺序。那么我该如何切换顺序,以便在满足特定条件时,“ylist”将出现在“xlist”之上?
最佳答案
一个简单的方法是将每个 View 放入其自己的 xml 文件中。 然后在运行时将它们以所需的顺序附加到 LinearLayout。
假设您的布局文件是:main.xml 并且您有 list_a.xml、list_b.xml 和 textview.xml
在您的 Activity 中:
@Override
public void onCreate(Bundle bundle) {
Super.onCreate(bundle);
setContentView(R.layout.main);
LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
LayoutInflater inflater = getLayoutInflater();
if (condition) {
inflater.inflate(R.layout.list_a, layout);
inflater.inflate(R.layout.textview, layout);
inflater.inflate(R.layout.list_b, layout);
} else {
inflater.inflate(R.layout.list_b, layout);
inflater.inflate(R.layout.textview, layout);
inflater.inflate(R.layout.list_a, layout);
}
}
关于java - 如何切换 xml 布局顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14482887/