Force stacked tabs

后端 未结 4 833
暗喜
暗喜 2020-12-17 03:07

Is there any way to force stacked tabs? I want tabs separate of action bar (in a second row), even when landscape mode.

I am trying to force it but I can´t. For exam

4条回答
  •  执笔经年
    2020-12-17 03:32

    If you need to support phones and tablets and don't want to use separate implementation you can put this in your activity:

    @Override
    public Resources getResources() {
        if (mResourcesImpl == null) {
            mResourcesImpl = new ResourcesImpl(super.getResources());
        }
        return mResourcesImpl;
    }
    
    class ResourcesImpl extends Resources {
        private Resources mResources;
        private Set mActionBarEmbedTabsIds = new HashSet();
    
        ResourcesImpl(Resources resources) {
            super(resources.getAssets(), resources.getDisplayMetrics(), resources.getConfiguration());
    
            mResources = resources;
    
            String packageName = getPackageName();
            mActionBarEmbedTabsIds.add(mResources.getIdentifier("abc_action_bar_embed_tabs", "bool", packageName));
            mActionBarEmbedTabsIds.add(mResources.getIdentifier("abc_action_bar_embed_tabs_pre_jb", "bool", packageName));
            mActionBarEmbedTabsIds.add(mResources.getIdentifier("action_bar_embed_tabs", "bool", "android"));
            mActionBarEmbedTabsIds.add(mResources.getIdentifier("action_bar_embed_tabs_pre_jb", "bool", "android"));
            mActionBarEmbedTabsIds.remove(0);
        }
    
        @Override
        public boolean getBoolean(int id) throws NotFoundException {
            if (mActionBarEmbedTabsIds.contains(id)) {
                return areActionBarTabsEmbed(); // stacked ot embed goes here
            }
            return super.getBoolean(id);
        }
    }
    

提交回复
热议问题