2012-03-22 85 views
4

您好我正在使用android。Android主布局模板

我有一个在每个活动中使用的布局。

我的意思是我有一个有页脚和页眉的布局。

在每个活动上,页眉和页脚都相同并具有相同的操作。

As you see,

我想用一个总体布局的页眉和页脚。

我的意思是在一项活动中,我将把内容区域布局放到总体布局中。

我觉得有点不够。

我该怎么做?

有没有这样做的虚拟文件?

对不起英语不好。

回答

2

您可以使用包含页眉&页脚或从基类动态添加它们,但我认为更好的方法是使用单个活动托管应用程序,然后使用Fragments作为屏幕内容。

http://android-developers.blogspot.co.uk/2011/02/android-30-fragments-api.html

+0

我使用的是Android 2.1版本 – user999822 2012-03-22 16:07:50

+1

这不是问题。 Android的兼容性软件包中包含片段(请参阅SDK管理器),以便您可以在V3.0之前版本的Android中轻松使用Fragments。除此之外,你可以使用www.ActionBarSherlock.com这是一个库(除了碎片)还提供了ActionBar – 2012-03-22 16:17:07

+0

http://jnastase.alner.net/archive/2011/01/08/ldquomaster-pagesrdquo-in -android.aspx这段代码不使用片段。这是问题吗? – user999822 2012-03-23 08:36:26

4

你正在谈论什么是所谓的碎片新的Android设计模式。由于3.0片段是可以组合形成屏幕的视图这样的小活动。

所以,你会创建一个页眉和页脚片段,然后包括这些各种需要他们的所有活动。

你可能想看看另一种模式是在操作栏模式,这是用来放置一个栏与常见的内容和功能,类似于你的头屏幕的顶部。

也是另一种方法是使用XML文件来定义页眉和页脚然后实例化这些视图可以在代码和编程方式将它们添加到您的内容视图XML定义。问题在于,页眉和页脚后面的代码需要在每个控制器中复制。最好的办法是使用片段,我就会把下面一些有用的链接:

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

+0

我正在使用android 2.1版本 – user999822 2012-03-22 16:07:29

+1

然后使用android兼容包。 Android的设计方式非常简单,只需为4.0设计一个应用程序,然后使用该包快速重新设计以前版本的应用程序即可。如果你不使用片段,那么稍后重构使用片段几乎是不可能的,我从这方面的经验知道。 http://stackoverflow.com/questions/5195697/unable-to-use-fragments-with-android-compatibility-package – 2012-03-22 16:56:34

+0

rhis代码呢? http://jnastase.alner.net/archive/2011/01/08/ldquomaster-pagesrdquo-in-android.aspx – user999822 2012-03-23 08:35:38

1

我对碎片什么,是的,他们'的路要走,但对于初学者的android开发者,你可以做到你想要做的事情<include> s和base activi领带。

article很好地解释了使用<include> s,但总结起来,你可以有一个布局xml文件,你可以“包含”到另一个布局,而不是一遍又一遍地重写相同的东西。

对于页眉和页脚的功能(假设他们在点击时执行某些操作),您可以创建一个可以扩展的基本活动,而不是普通的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的问题。

+0

@Josepus:我没有执行任何问题在这个问题。但我喜欢你的BaseActivity概念。你有关于你的概念的任何链接?因为思考你的概念在我心中带来了一些疑惑。 – MobiDev 2012-03-22 11:16:17

+0

它实际上是一个自我发现的想法,但当我在阅读关于同一问题的stackoverflow时,出现了类似的解决方案(或者更确切地说,同样的解决方案)。 (尽管没有链接,尝试搜索“android基地活动”)重要的是,它的工作原理:) – josephus 2012-03-22 11:37:05

-1

检查this出来,你确实可以重用你的布局,只要你想要它。