导航抽屉片段里面的Andr​​oid操作栏选项卡 [英] Android action bar tabs inside navigation drawer fragment

查看:94
本文介绍了导航抽屉片段里面的Andr​​oid操作栏选项卡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的导航抽屉片段。有没有实施操作栏选项卡于一体,同时具有抽屉式导航,就像在谷歌I / O 2014年应用程序的片段任何可能的方式:

I have navigation drawer with fragments. Is there any possible way to implement action bar tabs in one the fragments while having navigation drawer just like in Google I/O 2014 app?:

的http:// cdn.slashgear.com/wp-content/uploads/2014/06/google-io-2014-app-4.png

我的意思是,我需要它至少看起来像动作栏选项卡(带有滑动手势)。因为默认情况下viewPagerTabStrip真是闹心。

I mean I need it at least look like action bar tabs (with swipe gesture). Because default viewPagerTabStrip really suck.

在此先感谢;)

推荐答案

yes..i已经在我的应用程序实现了相同的。 我还用 ViewPager

yes..i have implemented the same in my app. I also used ViewPager.

< android.support.v4.view.ViewPager         的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android         机器人:ID =@ + ID /寻呼机         机器人:layout_width =match_parent         机器人:背景=@机器人:彩色/白         机器人:layout_height =match_parent> < /android.support.v4.view.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;
    }
}

和抽屉,使用

&LT; android.support.v4.widget.DrawerLayout&GT;  //你的code &LT; /android.support.v4.widget.DrawerLayout>

<android.support.v4.widget.DrawerLayout> //your code </android.support.v4.widget.DrawerLayout>

这篇关于导航抽屉片段里面的Andr​​oid操作栏选项卡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆