android 中没有 Viewpager 的工具栏中的选项卡

Tabs in Toolbar without Viewpager in android

我已经在 SO 中查看了很多答案,但没有得到任何适当的解决方案来在没有 Viewpager 的情况下在工具栏中实现选项卡。

我已经查看了 sdk 示例中提供的 SlidingTabsBasic 示例,但是,它不符合我的要求。

请帮助我在没有 Viewpager 的情况下实现工具栏中的选项卡。

请不要建议我使用 Viewpager,因为根据 UI.

,我的应用不应该支持它

Please help me to implement the Tabs in Toolbar without Viewpager.

The Toolbar class 不支持任何形式的制表符,有或没有 ViewPager

如果您想要一个选项卡 UI,并且不想使用 ViewPager,欢迎您使用 FragmentTabHost 或自己创建自己的选项卡 UI .

现在,我们有 android 支持设计库来使用 android.support.design.widget.TabLayout 实现选项卡。这是代码的快照。希望这会对某人有所帮助。

public class MainActivity extends AppCompactActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);
            TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);
            tabLayout.addTab(tabLayout.newTab().setText("Tab1"));
            tabLayout.addTab(tabLayout.newTab().setText("Tab2"));

            tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
                @Override
                public void onTabSelected(TabLayout.Tab tab) {
                    //load fragment or do whatever you want
                    Fragment fragment = new MyFragment();
                    getFragmentManager()
                            .beginTransaction().replace(R.id.containerLayout, fragment).commit();
                }

                @Override
                public void onTabUnselected(TabLayout.Tab tab) {

                }

                @Override
                public void onTabReselected(TabLayout.Tab tab) {

                }
            });
        }
    }

activity_main.xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|enterAlways"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    <android.support.design.widget.TabLayout
        android:id="@+id/tab_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabMode="scrollable" />

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/containerLayout">

</LinearLayout>