Android Support Design TabLayout: Gravity Center and Mode Scrollable

前端 未结 13 1999

I am trying to use the new Design TabLayout in my project. I want the layout to adapt to every screen size and orientation, but it can be seen correctly in one orientation.<

13条回答
  •  遥遥无期
    2020-12-02 07:16

    this is how i did it

    TabLayout.xml

    
    

    Oncreate

    @Override
        protected void onCreate(Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
            mTabLayout = (TabLayout)findViewById(R.id.tab_layout);
            mTabLayout.setOnTabSelectedListener(this);
            setSupportActionBar(mToolbar);
    
            mTabLayout.addTab(mTabLayout.newTab().setText("Dashboard"));
            mTabLayout.addTab(mTabLayout.newTab().setText("Signature"));
            mTabLayout.addTab(mTabLayout.newTab().setText("Booking/Sampling"));
            mTabLayout.addTab(mTabLayout.newTab().setText("Calendar"));
            mTabLayout.addTab(mTabLayout.newTab().setText("Customer Detail"));
    
            mTabLayout.post(mTabLayout_config);
        }
    
        Runnable mTabLayout_config = new Runnable()
        {
            @Override
            public void run()
            {
    
               if(mTabLayout.getWidth() < MainActivity.this.getResources().getDisplayMetrics().widthPixels)
                {
                    mTabLayout.setTabMode(TabLayout.MODE_FIXED);
                    ViewGroup.LayoutParams mParams = mTabLayout.getLayoutParams();
                    mParams.width = ViewGroup.LayoutParams.MATCH_PARENT;
                    mTabLayout.setLayoutParams(mParams);
    
                }
                else
                {
                    mTabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
                }
            }
        };
    

    I made small changes of @Mario Velasco's solution on the runnable part

提交回复
热议问题