关于堆栈溢出的第一个问题,如果没有很好的格式,请道歉。
我正在开发一个相对复杂的选项卡式应用程序,并且在了解到ActivityGroup和TabActivity不受欢迎的信息之前已经完成了基本设置,而首选的模型是使用视图。
我没有遇到使用视图的问题,这是一个关于体系结构而不是语法的问题(这就是为什么我没有发布任何代码)。具体来说,我应该如何对应用程序进行重组,以使用视图而不是意图启动的活动。
该应用程序有五个选项卡,其中两个只有一个布局,没有问题。其他三个选项卡正在运行一个具有2-5个不同活动的ActivityGroup (即一个选项卡,运行一个用于设置的活动,单击每个视图启动一个处理特定设置的新活动,按后退按钮将返回到更广泛的设置活动/视图)。如果我要将每个选项卡保留为一个TabActivity,那么将这些内部转换更改为视图(而不是单独的活动)仍然相当容易。
主要问题是只使用视图,根本不使用TabActivity/Activity。我所做的绝大多数研究都是讨论是使用活动还是视图,还是使用特定的语法。对于如何在整个应用程序中实际过渡到视图,我还没有收集到一个清晰的概念。
当谷歌的人说我们不应该再用活动作为标签时,马克·墨菲先生非常赞同,我倾向于相信。我只是还没能研究出一种不用手工重新创建很多活动功能的切换方式(这可能包括各种肮脏的黑客)。
预先感谢任何愿意处理这样一个模糊和被改写的话题的人。
发布于 2012-02-01 21:28:41
使用片断是执行选项卡式ui组件的新标准,我认为您一定忽略了它们,因为它们是所有上述问题的缺失部分。祝好运。
不要忘记,使用兼容性库将片段支持带回到1.6。
这里是谷歌推荐的关于在TabHost中使用片段的简单教程。
发布于 2012-02-01 21:33:33
大约3)将你的应用程序分割成不同的活动,因为你有应用的不同部分。今天,我甚至会选择更容易组合成不同布局的Fragements,例如,为手机和平板电脑制作应用程序。大多数情况下,您只需在相应的xml布局定义文件中设置onClick侦听器,如下所示:
<ImageButton
android:id="@+id/new_tweet_back_button"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="left"
android:onClick="done"
android:src="@drawable/back_button"
android:layout_below="@id/CharCount"
/>在这里,android:onClick属性指向实现处理程序的方法。你不需要注册任何东西。
我选择的不是Tabs,而是ViewPager,它使imo更自然地通过左右滑动交换视图(例如,G+应用程序或市场应用程序)。
发布于 2012-02-03 19:30:54
作为对我自己问题的最后回答:
在选项卡中使用片段确实解决了上述所有问题。
因此,我没有使用定义包含其他活动的选项卡的活动,而是有一个大型FragmentActivity来设置和切换各个片段的视图。在XML中为每个选项卡视图定义的单击方法属于FragmentActivity,我选择让每个onClick调用适当片段中的相应方法(必要时传递上下文),以便以编程方式操作每个视图的代码可以保留在适当的类中。
这是为使用兼容性包的手机,而不是平板电脑或蜂窝,所以我不能代表那些不幸。
这个解决方案似乎对我很管用。我建议任何看过同样问题的人去看看:
博客文章:http://thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/
片段上的Android文档:http://developer.android.com/guide/topics/fundamentals/fragments.html
API演示“片段标签”http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/index.html#Fragment
https://stackoverflow.com/questions/9103528
复制相似问题