ViewPagerIndicator和FragmentPagerAdapter的那些坑

一张图

ViewPagerIndicator是Jake Wharton大神的一个知名开源框架。使用它和FragmentPagerAdapter可以轻松实现类似微信底部切换fragment的功能。具体做法可以参考 @Hi_陈利健的大作开源控件ViewPagerIndicator的使用

现在说说我写的时候踩的一个大坑。不知道为什么我用FragmentPagerAdapter塞进去的Fragment忽闪忽现,有时候出现,有时候就给我白屏。完全看心情。找了半天原因,扯了半天头发,发现。。。

成功与失败,有时候只隔着一个单词的距离。

其实这次踩坑不是因为坑大,是我眼瞎。。我一直以为findViewById是只能通过activity调用的。所以我所有Fragment中的赋值工作都放在onActivityCreated方法了。但这样做的话ViewPagerIndicator就不知道怎样把tab和fragment配搭起来了。正确的做法是把Fragment的赋值工作放在onCreateView里面。可是问题来了,onCreateView里面activity还没有被创建好,强行用activity.findViewById的话会报空指针异常。这可这么办?这时候我才发现,原来View可以调用findViewById!!!

//动态找到布局文件,再从这个布局中find出TextView对象 
View contextView = inflater.inflate(R.layout.fragment_item, container, false); 
TextView mTextView = (TextView) contextView.findViewById(R.id.textview);

这样,就可以在onCreateView里进行赋值工作了。运行成功!从activity到view,一词之别,输赢之分。这就是代码的魅(ke)力(pa).

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容