这是库:https : //github.com/astuetz/PagerSlidingTabStrip我正在尝试实现它,但是我的应用在启动时总是崩溃。我试图了解发布的示例应用程序,但是认为我做的不正确。这是我的代码:
MainActivity.java
导入android.graphics.Color; 导入android.graphics.drawable.ColorDrawable; 导入android.graphics.drawable.Drawable; 导入android.graphics.drawable.LayerDrawable; 导入android.graphics.drawable.TransitionDrawable; 导入android.os.Build; 导入android.os.Bundle; 导入android.os.Handler; 导入android.support.v4.app.Fragment; 导入android.support.v4.app.FragmentActivity; 导入android.support.v4.app.FragmentManager; 导入android.support.v4.app.FragmentPagerAdapter; 导入android.support.v4.view.ViewPager; 导入android.util.TypedValue; 导入android.view.Menu; 导入android.view.MenuItem; 导入android.view.View; 导入com.astuetz.PagerSlidingTabStrip; 公共类MainActivity扩展FragmentActivity { private final Handler handler = new Handler(); 专用的PagerSlidingTabStrip标签; 私人ViewPager传呼机; 私有MyPagerAdapter适配器; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); 制表符=(PagerSlidingTabStrip)findViewById(R.id.tabs); 传呼器=(ViewPager)findViewById(R.id.pager); adapter = new MyPagerAdapter(getSupportFragmentManager()); pager.setAdapter(adapter); tabs.setViewPager(pager); } @Override public boolean onCreateOptionsMenu(Menu menu){ //膨胀菜单;这会将项目添加到操作栏(如果有)。 getMenuInflater()。inflate(R.menu.main,menu); 返回true; } @Override public boolean onOptionsItemSelected(MenuItem item){ //处理操作栏项目单击此处。 只要 您在AndroidManifest.xml中指定父活动,// 操作栏将//自动处理Home / Up按钮上的单击。 int id = item.getItemId(); 如果(id == R.id.action_settings){ 返回true; } return super.onOptionsItemSelected(item); } @Override protected void onSaveInstanceState(Bundle outState){ super.onSaveInstanceState(outState); } @覆盖 保护无效onRestoreInstanceState(捆绑savedInstanceState){ super.onRestoreInstanceState(savedInstanceState); } 私有Drawable.Callback drawableCallback = new Drawable.Callback(){ @Override public void invalidateDrawable(Drawable who){ getActionBar()。setBackgroundDrawable(who); } @Override public void scheduleDrawable(Drawable who,Runnable what,long when){ handler.postAtTime(what,when); } @Override public void unscheduleDrawable(Drawable who,Runnable what){ handler.removeCallbacks(what); } }; 公共类MyPagerAdapter扩展FragmentPagerAdapter { 私有最终String []标题= {“ T1”,“ T2”}; 公共MyPagerAdapter(FragmentManager fm){ super(fm); } public CharSequence getPageTitle(int position){ return TITLES [position]; } @Override public Fragment getItem(int i){ 返回null; } @Override public int getCount(){ 返回TITLES.length; } } }
这是acitivty_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="edu.purdue.test.app.MainActivity">
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip" />
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tabs"
tools:context=".MainActivity" />
</RelativeLayout>
您不实例化希望成为FragmentPagerAdapter中的标签的getItem方法的任何片段。而是您返回的null,因此没有视图可以填充viewpager。我可以看到您已经签出了他的示例项目,或者仔细研究了您尝试添加到viewpager中的片段。上面的答案看起来像一个不错的实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句