java - 如何切换 xml 布局顺序

标签 java android layout

我想知道如何根据条件更改 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/

相关文章:

java - 在 xml 消息中发送 pdf 文件

带有插入行的 Android SQLite 数据库

android - 如何以编程方式从通知中恢复 Activity ?

android - 我改变了重力,但按钮位置相同

java - 独立的前端应用程序 - 构建和部署策略

java - 使用基本类型时如何避免重复?

java - 在 Android 中创建自定义 ListView 时出现 UnsupportedOperationException

Android - 按钮高度不会降低以换行文本

android - android中的定位布局

android - 抽屉导航 Android API 特定的布局属性