[英]Android action bar tabs inside navigation drawer fragment
我有帶碎片的導航抽屜。 是否有任何可能的方法在片段中實現操作欄選項卡,同時具有導航抽屜,就像在Google I / O 2014應用程序中一樣?:
http://cdn.slashgear.com/wp-content/uploads/2014/06/google-io-2014-app-4.png
我的意思是我需要它至少看起來像動作欄標簽(用滑動手勢)。 因為默認的viewPagerTabStrip真的太爛了。
提前致謝 ;)
是..我已經在我的應用程序中實現了相同的功能。 我也使用了ViewPager
。
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pager" android:layout_width="match_parent" android:background="@android:color/white" android:layout_height="match_parent"> </android.support.v4.view.ViewPager>
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_fragment);
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new MyAdapter(getSupportFragmentManager(), ActionBarActivity.this));
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int i, float v, int i2) {
}
@Override
public void onPageSelected(int i) {
actionBar.setSelectedNavigationItem(i);
}
@Override
public void onPageScrollStateChanged(int i) {
}
});
actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayShowHomeEnabled(true);
ActionBar.Tab tab1 = actionBar.newTab();
tab1.setText("Client");
tab1.setTabListener(this);
ActionBar.Tab tab2 = actionBar.newTab();
tab2.setText("Supplier");
tab2.setTabListener(this);
ActionBar.Tab tab3 = actionBar.newTab();
tab3.setText("Driver");
tab3.setTabListener(this);
ActionBar.Tab tab4 = actionBar.newTab();
tab4.setText("Owner");
tab4.setTabListener(this);
actionBar.addTab(tab1);
actionBar.addTab(tab2);
actionBar.addTab(tab3);
actionBar.addTab(tab4);
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
}
並且還使用片段適配器
class MyAdapter extends FragmentPagerAdapter{
Context context;
public MyAdapter(FragmentManager fragmentManager, Context context){
super(fragmentManager);
this.context = context;
}
@Override
public Fragment getItem(int i) {
Fragment fragment = null;
if(i == 0){
fragment = new FragmentClass1(context);
}else if(i == 1) {
fragment = new FragmentClass2(context);
}else if(i == 2){
fragment = new FragmentClass3(context);
}else {
fragment = new FragmentClass4(context);
}
return fragment;
}
@Override
public int getCount() {
return 4;
}
}
而對於抽屜,請使用此
<android.support.v4.widget.DrawerLayout>
//您的代碼</android.support.v4.widget.DrawerLayout>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.