2013-02-07 30 views
0

我有按钮的导航栏,我想多活动之间分享到:Android - 如何在活动之间保持UI元素静态?

enter image description here

目前,当我开始同样的活动(例如,点击LOST.DIR)整个屏幕的变化,包括导航栏(出现新的文件夹列表)。

我想保持导航栏是静态的(在相同的活动类型之间保持不变,或在开始新活动后不再改变或重新出现)。

这可能吗?

+0

嘿,我回答你的问题?如果是的话,你是否可以接受答案的完整性。分享那么爱! –

回答

7

这听起来像你想使用一个活动和fragments

但是,如果你真的必须使用多个活动。另一种方法是使用操作栏,(actionbarsherlock非常适合此操作),并在不同的活动之间切换菜单。菜单下拉菜单可以是操作栏上的图标列表,也可以是位于操作栏右上角的下拉式微调框。此操作栏在整个活动中将保持静态,并包含相同的类别列表(即导航栏的列表)。

1

不是马上。活动与你想要的完全相反:它们是独立的界面。

您可以使用Fragments,或将您的活动嵌入到主活动中。例如,TabHost这样做。

+1

请勿使用TabHost。 TabHosts非常难看,难以管理(特别是在单独的活动中),并且通常不建议。 –

0

完全控制的一种方法是编写自己的自定义类,它将LinearLayout作为构造函数参数,并处理每个按钮的可见性,单击派发(通过委托),图像等。

添加方法来完成上述所有操作以及您需要的任何其他功能。

在每个活动布局中创建一个layout.xml。

在每个Activity中实例化您的按钮栏类,并将它在您的内容视图中通过findViewById获得的布局的引用传递给它。

正如其他人所说,现有的解决方案,你可能会问“为什么要发明一个新的车轮”。我刚刚在我的许多项目中使用了这样的课程,而且在完成第一版课程的过程中做了很多工作,但是现在我有一门课程,可以轻松完全控制,添加,修复和自定义课程。

事情是这样的:

bar.setButtonClickHandler(Button.Favourites, favouritesButtonClickHandler); 
bar.setButtonVisibility(Button.Edit, View.INVISIBLE); 

我用过的LinearLayout,但如果我有需要使用别的东西,这是一个简单的事情重载构造函数接受,为例如,一个RelativeLayout参数。

相关问题