【问题标题】:ActionbarSherlock with ViewPager with SherlockListFragmentsActionbarSherlock 与 ViewPager 与 SherlockListFragments
【发布时间】:2013-07-04 04:29:05
【问题描述】:
我已经在我的第一个 Android 应用程序上成功实现了 ActionbarSherlock,目前实现 ViewPager 并没有取得多大成功。
操作栏当前包含两个选项卡,每个选项卡都加载一个 SherlockListFragment。
问题在于,当应用程序加载时,第一个 listfragment 会加载,然后很快第二个 listfragment 会替换屏幕上的第一个。
如果我滑动或点击到第二个标签,什么都不会出现。
似乎第二个 listfragment 取代了屏幕上的第一个。
有没有人遇到过类似的情况?
谢谢
【问题讨论】:
标签:
android
actionbarsherlock
android-viewpager
【解决方案1】:
您可以先创建一个可以工作的示例视图寻呼机项目,然后慢慢修改以包括 actionbarsherlock 等,而不是从头开始。
转到文件->新建->项目->Android应用程序项目。在单击完成之前的几个下一步按钮之后,有一个称为“导航类型”的选项。您可以选择“固定标签+滑动”或“可滚动标签+滑动”并点击完成。
如果要支持低于 11 的 api,可以先设置最小 api 11 以便创建项目,然后在修改代码包含支持库后在文件 manifest.xml 中修改最小 api 级别。
【解决方案2】:
发现问题!
对于我的 SherlockListFragments 更新方法,我有:
final ListView listview = (ListView) getActivity().findViewById(android.R.id.list);
问题是“getActivity()”会获取应用的当前Activity,也就是当前管理ViewPager的整体SherlockActivity。
因此我将其更改为:
final ListView listview = (ListView) myCurrentView.findViewById(android.R.id.list);
myCurrentView 在我的 OnCreateView 中设置为:
View V = inflater.inflate(R.layout.contacts_list, container, false);
myCurrentView = V;
希望这对将来的其他程序员有所帮助。