0

我开发Android了一些具有通用 UI 格式的屏幕的应用程序。

自顶向下方法的格式是:

  1. 标题页眉(两个buttons, ImageView
  2. 内容区域 - 活动之间会有所不同(包含 ListView、Tabs、Buttons、TextView、WebView ......)
  3. 页脚布局(Relative Layout带三个Imagebuttons

我想重新格式化代码,使其xml包含标题页眉和页脚布局,其他xml包含ListView标签,按钮..根据使用情况。我能做到这一点吗?请帮助我提供示例代码/链接....

4

5 回答 5

3

您可以使用 include 元素来拥有子 xml 文件:

<LinearLayout ... >
    <include layout="@layout/header" />
    <include layout="@layout/content" />
    <include layout="@layout/footer" />
</LinearLayout>

这将允许您轻松创建重复使用这些部分的布局。

于 2012-12-07T11:07:26.330 回答
0

使用标签。

      <include 
        android:id="@+id/some_id_if_needed"
        layout="@layout/some_layout"/>

另外,请阅读合并布局文章

于 2012-12-07T11:10:13.150 回答
0

你需要的是include标签。您可以重复使用您的布局。您需要做的就是包括它们:

<include
android:id="@+id/layout_id"
layout="@layout/layout_name" />
于 2012-12-07T11:10:27.613 回答
0

您可以使用包含标记在活动视图中添加更多 xml,只需查看此http://developer.android.com/training/improving-layouts/reusing-layouts.html

例如,在您的情况下,

  1. 在您的 main.xml 中,使用相对布局
  2. 为 header 添加单独的 xml,在 main.xml 中添加 using tag add
  3. 在 main.xml 中添加相对布局,使用高度作为包装内容并添加列表视图
  4. 为页脚添加单独的相对布局 xml,在 main.xml 中添加使用标签添加并使用 android:layout_alignParentBottom="true"
于 2012-12-07T11:10:53.323 回答
0

我建议您利用 Java 中的继承。有一个BaseActivity您可以在活动中定义所有常见事物并扩展它并在所有子活动中设置内容的地方。在BaseActivity的布局中有一个空的内容布局,稍后在子活动中您可以使用LayoutInflater填充内容。

伪代码:

BaseActivity extends Activity{
    View mBody;
    void onCreate(Bundle prevState){
        super.onCreate(prevState);
        setContentView(R.layout.baselayout);
        mBody = findViewById(R.id.body)
    }

    void setBody(int bodyLaout){
        //here populate the mView using LayoutInflater
    }
}

Activity1 extends BaseActivity{
    void onCreate(...){
        super.onCreate(...);
        setBody(R.layout.activity_one);
    }
}
于 2012-12-07T11:32:12.790 回答