【发布时间】:2012-03-22 10:52:19
【问题描述】:
嗨,我正在开发安卓系统。
我有一个用于每个活动的布局。
我的意思是我的布局有页脚和页眉。
在每个活动上,页眉和页脚都相同,并且具有相同的操作。
我想为页眉和页脚使用一般布局。
我的意思是在一个activity中,我会把内容区布局放到general layout。
我找到了一些东西,但还不够。
我该怎么做?
是否有这样做的虚拟文档?
抱歉英语不好。
【问题讨论】:
标签: java android android-layout
嗨,我正在开发安卓系统。
我有一个用于每个活动的布局。
我的意思是我的布局有页脚和页眉。
在每个活动上,页眉和页脚都相同,并且具有相同的操作。
我想为页眉和页脚使用一般布局。
我的意思是在一个activity中,我会把内容区布局放到general layout。
我找到了一些东西,但还不够。
我该怎么做?
是否有这样做的虚拟文档?
抱歉英语不好。
【问题讨论】:
标签: java android android-layout
您所说的是一种称为 Fragments 的新 Android 设计模式。由于 3.0 片段是可以组合形成屏幕的视图之类的小型活动。
因此,您将创建一个页眉和页脚片段,然后将它们包含在所有需要它们的活动中。
您可能想要查看的另一种模式是操作栏模式,它用于在屏幕顶部放置一个具有通用内容和功能的栏,类似于您的标题。
另一种方法是使用 xml 文件来定义页眉和页脚,然后将它们实例化为代码中的视图,并以编程方式将它们添加到内容视图 xml 定义中。这样做的问题是页眉和页脚后面的代码需要在每个控制器中复制。您最好的选择是使用 Fragments,我将在下面放置一些有用的链接:
http://developer.android.com/guide/topics/ui/actionbar.html
http://developer.android.com/guide/topics/fundamentals/fragments.html
http://mobile.tutsplus.com/tutorials/android/android-compatibility-working-with-fragments/
https://stackoverflow.com/questions/5710573/need-a-fragments-example
【讨论】:
您可以将包含用于页眉和页脚,或者从基类动态添加它们,但我认为更好的方法是使用单个 Activity 来托管应用程序,然后将 Fragments 用于您的屏幕内容。
http://android-developers.blogspot.co.uk/2011/02/android-30-fragments-api.html
【讨论】:
我不反对碎片,是的,它们是要走的路,但对于初学者的 android 开发人员,你可以通过<include>s 和基本活动来实现你想要做的事情。
这个article 很好地解释了<include>s 的使用,但总而言之,您可以拥有一个布局xml 文件,您可以将其“包含”到另一个布局中,而不是一遍又一遍地重写相同的内容。
对于页眉和页脚的功能(假设它们在单击时执行某些操作),您可以创建一个可以扩展的基础 Activity,而不是普通的 android Activity。
在此基础活动中定义页眉和页脚点击的逻辑,例如使用此示例代码:
public class MyBaseActivity extends Activity {
...
public void onHeaderClick(View view) {
// when header is clicked, do this.
}
public void onFooterClick(View view) {
// when footer is clicked, do this.
在您的布局(作为单独 xml 的布局)中,将 onClick 属性添加到您的页眉/页脚,在基本活动中分配方法的名称。
比如
android:onClick="onHeaderClick"
然后,只需为所有具有页眉和页脚的活动扩展 MyBaseActivity。
【讨论】:
检查this,您确实可以随时重复使用您的布局。
【讨论】: