TabPageIndicator导航抽屉出错

时间:2014-10-06 12:16:31

标签: java android android-fragments android-viewpager android-navigation

示例问题的示例代码在此处:

https://github.com/Beeder/TestTabPager

(格式更好的问题,请参阅我的github项目TestTabPager自述文件)

从Android Studio 0.8.6导出


我是Android编程新手,最近我使用导航drawerand viewpageindicator,但我被困在这里。

选择item0,正确显示带有三个标签的item0片段,选择item1,完成后再次选择item0,显示三个标签的item0片段,但仅显示三个标签,相应的内部片段为走了!更奇怪的是,当我在这三个标签之间滑动时,TAB0和TAB2的内部碎片再次显示,但是TAB1的内部碎片从未显示过!为什么?

以下是详细信息: 根据本教程(www.tutecentral.com/android-custom-navigation-drawer/),我创建了一个这样的导航抽屉活动:

raw.githubusercontent.com/Beeder/MyStorage/master/Image/TestTabPager/Screenshot_2014-10-06-17-25-59.png

(抱歉,我没有超过10个声誉,您可以将网址粘贴到浏览器并查看图片。)

为了演示,只添加了两个抽屉物品。当选择项目0时,这里是item0片段(在我的项目中命名为NewsFragment):

raw.githubusercontent.com/Beeder/MyStorage/master/Image/TestTabPager/Screenshot_2014-10-06-17-26-14.png

在NewsFragment中,我使用JakeWharton的Android-ViewPagerIndicator(github.com/JakeWharton/Android-ViewPagerIndicator),更具体地说是TabPageIndicator。 有三个选项卡,选择一个选项卡,显示相应的TabFragment(x)。

选择抽屉item1时,显示:

raw.githubusercontent.com/Beeder/MyStorage/master/Image/TestTabPager/Screenshot_2014-10-06-17-26-24.png

但是,当我再次选择抽屉item0 ,除了三个标签外,一切都消失了!这意味着没有显示TabFragment(x)的TextView。为什么?

更奇怪,在这三个标签之间滑动后,TAB0和TAB2的内部片段(TextView)再次显示,但是TAB1的内部片段从未显示过!为什么?那是因为TAB1在中间吗?

我尝试了很多方法来解决这个问题,在NewsFragment中,我覆盖onStop()onViewStateRestored()以获取最后一个选定的标签,但tabPageIndicator.setCurrentItem(selectedItem);似乎没有真正触发{ {1}}方法,不会再次创建所选标签的内部片段!

Fragment getItem(int position)

我想这与没有保存InstanceState有关,但我不知道还能做什么,我已经挣扎了两天,如果你能帮助我,我会很感激。

再次感谢。

1 个答案:

答案 0 :(得分:0)

在深入研究之后,我已经弄清楚了。

事实证明,

FragmentPagerAdapter是主要问题。用FragmentPagerAdapter替换FragmentStatePagerAdapter并跟踪所有活动的内部片段后,我已经解决了我的问题。

非常感谢this answer

如果您能阅读中文,this blog可能会帮助您更好地理解。

有关详细信息,请随时查看我的项目README