Android - Material 设计 : tabstrip with sliding tab (titles)

标签 android android-layout material-design android-tabs android-tabstrip

在我的应用程序( Material 设计)中,我想显示(比如说)10 个选项卡。在这些选项卡中,选项卡条应该包含例如4. 现在标签条显示所有标签标题,每个标签有 2 个字母。 如何创建滑动标签条?这样我就可以在选项卡条中滚动到右侧选项卡了吗? 我知道有一个定制的标签条,我想尽可能多地使用标准设施。

1 - 设置标签页:

private void setupTabPager() {
    viewPager = (ViewPager) findViewById(R.id.pager);
    final PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
    viewPager.setAdapter(adapter);
    viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
    tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {
            // UserFeedback.show( "Tab selected: " + tab.getText());
            viewPager.setCurrentItem(tab.getPosition());
        }
        @Override
        public void onTabUnselected(TabLayout.Tab tab) {
        }
        @Override
        public void onTabReselected(TabLayout.Tab tab) {
        }
    });
}

2 - 设置选项卡布局:

private void setupTablayout() {
    tabLayout = (TabLayout) findViewById(R.id.tabLayout);
    if (tabLayout == null) {
        return;
    }
    // tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
    tabLayout.setTabGravity(TabLayout.MODE_SCROLLABLE);
    tabLayout.addTab(tabLayout.newTab().setText("Folders"));
    tabLayout.addTab(tabLayout.newTab().setText("Items"));

3 - 扩展 FragmentStatePagerAdapter 的 PageAdapter:

public class PagerAdapter extends FragmentStatePagerAdapter {
    int mNumOfTabs;
    public PagerAdapter(FragmentManager fm, int NumOfTabs) {
        super(fm);
        this.mNumOfTabs = NumOfTabs;
    }
    @Override
    public Fragment getItem(int position) {
        switch (position) {
            case MainActivity.FRAGMENT_GROUPS_AND_ITEMS:
                return new FragmentGroupsAndItems();
            case MainActivity.FRAGMENT_FOLDERS:
                return new FragmentFolders();
     .... }

最佳答案

请参阅本教程。它会为你工作。 http://www.androidhive.info/2015/09/android-material-design-working-with-tabs/

这是根据 Android Material Design 的新实现

关于Android - Material 设计 : tabstrip with sliding tab (titles),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34509745/

相关文章:

angularjs - Angular Material Design - 根据屏幕尺寸更改弹性值

android - 如何设置对话框标题引力?

Android数据绑定(bind): Why doesn't passing in variable to ViewStubs work like include layouts?

android - 将 <include> 标签与 ?attr/myAttr 一起使用

android - 具有可展开和可折叠列的表格或网格

android - MODE_NIGHT_NO 之后的 MODE_NIGHT_FOLLOW_SYSTEM

android - 如何将 BottomNavigationView 与 NavigationView 一起对齐到 Activity 的底部?

java - 更改布局不透明度(进度条除外)

android - 调整麦克风录音音量

javascript - 在 cordova 项目中检查 native android 浏览器中的 WebSocket 支持