Android:在标签中切换视图而无需离开当前标签就像USA Today App

问题描述

| 我正在开发运动队应用,正在创建自己的标签栏,而不是使用Google的标签代码。我喜欢《今日美国》应用程序的工作方式。 今日美国应用 当您在不同类别的新闻中进行选择时,只有下面的视图会更改,它不会切换到全新的屏幕/活动。他们是如何做到的?     

解决方法

        从屏幕截图中可以看到,不同的类别包含在“ 0”视图中。通过
setOnItemSelectedListener
,您可以在用户选择其他项目时注册回叫。然后您可以以编程方式更改主ѭ2或用新数据填充它。 例如,假设您在布局中定义了
ViewFlipper
Gallery
,其中
Gallery
中项目的顺序与
ViewFlipper
Views
的顺序相对应。在“活动”中,您使用
findViewById
获得对那些
Views
(鳍和画廊变量)的引用。然后,您可以执行以下操作:
    myGallery.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent,View view,int position,long id) {
            flipper.setDisplayedChild(position);
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {
        }
    });
    ,        您可以使用ActivityGroup在当前选项卡的不同视图之间切换。这是一个演示。 http://androidgenuine.com/ ActivityGroup的完整演示     ,        我不知道他们如何在自己的应用中实现该功能。它们很可能只是改变视图树,即以编程方式将一个视图替换为另一个视图。最大的问题是,您通常需要大量代码来支持可能在特定活动中显示的每个视图-用于加载数据,处理用户点击等的代码。您可以在其中放入很多代码自定义View类,而不是将其包含在Activity中。如果在视图中放置“业务逻辑”似乎是错误的,那么我建议使用片段。然后,可以使用FragmentTransactions处理更改的选项卡。这些是在Android 3.0中添加的,但是有一个兼容性软件包,可以让您在Android 1.6+上使用它们。