3

我正在编写一个具有Navigation Drawer并且正在使用嵌套片段的应用程序。导航抽屉几乎是根据 Android 文档创建的 - 它可以工作。我希望导航抽屉始终可见,这就是为什么我有一个活动,我只是交换片段。其中一个片段是 a ViewPager,它又具有自己的片段作为页面。

导航是分层的,如下所示:

- Home
- Fragment 1
-- Subfragment 1.1
-- Subfragment 1.2
-- Subfragment 1.3
- Fragment 2
-- Subfragment 2.1
-- Subfragment 2.2
-- Subfragment 2.3

其中 Fragment 是 a ViewPager, Subfragments 是它的页面。当我Fragment从抽屉中进入时,一切正常,但我不知道如何直接切换到ViewPager's给定页面(嵌套片段)

MainActivity 处理导航抽屉点击:

@Override
protected void onNavItemSelected(int id) {
    switch ((int)id) {
        case 1:
            getSupportFragmentManager().beginTransaction()
            .replace(R.id.content_frame, new MainFragment())
            .addToBackStack(null).commit(); 
            break;
        case 100:
            getSupportFragmentManager().beginTransaction()
            .replace(R.id.content_frame, new Fragment1())
            .addToBackStack(null).commit();
            break;
        case 200:
            getSupportFragmentManager().beginTransaction()
            .replace(R.id.content_frame, new Fragment2())
            .addToBackStack(null).commit();
            break;
        .
        .
        .
    }    
}

我想这应该是带有getChildFragmentManager()and的东西ViewPager's setCurrentItem(),但是我无法在我的 Main Activity 中获得第一个(或不知道如何),并且我无法使用第二个,因为如果我执行类似这样的操作,则尚未创建寻呼机:

SubFragment11 a = new SubFragment11();
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, a).addToBackStack(null).commit();
a.setCurrentPagerItem(2);
4

1 回答 1

0

为 ViewPager 片段提供一个带有变量的 Bundle,以控制所选项目。创建 Viewpager 后,获取该整数并切换到该面板。

于 2013-11-20T21:53:31.810 回答