我正在使用名为EffectiveNavigation 的谷歌示例来创建带有选项卡的ViewPager。问题是在清单中,对于我的主要活动,我设置了
android:theme="@android:style/Theme.Holo.NoActionBar.Fullscreen"
这样我的应用程序就没有actionBar。因此我在以下位置收到 NullPointerException
final ActionBar actionBar = getActionBar();//null from getActionBar()
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);//NullPointerException
现在,我想要的只是能够创建一个带有选项卡的简单 ViewPager。就是这样。没什么了不起的。我使用谷歌的例子,因为这是我发现的。
基本上在谷歌的例子中,他们使用状态栏来保存选项卡。我还能怎样掌控局面呢?任何缺乏关于如何修改护目镜示例的好示例或说明的内容都不会有太大帮助,因为我对 ViewPagers 不太了解。谷歌示例的链接是http://developer.android.com/training/implementing-navigation/terior.html http://developer.android.com/training/implementing-navigation/lateral.html
一个简单的解决方法 statusBar 可能就足够了。
使用 ActionBar 来保存选项卡实际上已被弃用,因为即使您的应用程序确实有操作栏,也可能会导致 NullPointerException。好消息是 Design 包中的 TabLayout 使您可以轻松创建带有选项卡的 ViewPager。只需在 Activity(或 Fragment)的 XML 中写入以下内容:
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.design.widget.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top" />
</android.support.v4.view.ViewPager>
一旦您拥有了 ViewPager 的适配器,请在 Activity(或 Fragment)的 onCreate 方法中的 setContentView 方法之后包含以下代码:
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
tabLayout.setupWithViewPager(viewPager);
希望能帮助到你 ;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)