【发布时间】:2013-09-14 15:42:58
【问题描述】:
我正在编写一个具有Navigation Drawer 并使用嵌套片段的应用程序。
导航抽屉几乎是根据 Android 文档创建的 - 它可以工作。
我希望导航抽屉始终可见,这就是为什么我有一个活动,我只是交换片段。其中一个片段是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 是 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() 和 ViewPager's setCurrentItem() 的东西,但我无法在我的主要活动中获得第一个(或不知道如何),我不能使用第二个,因为如果我执行以下操作,则尚未创建寻呼机:
SubFragment11 a = new SubFragment11();
getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, a).addToBackStack(null).commit();
a.setCurrentPagerItem(2);
【问题讨论】:
标签: android android-fragments navigation navigation-drawer