ActionBar tabs set dynamic width according to screen width

后端 未结 3 1265
有刺的猬
有刺的猬 2020-12-18 13:57

I have 5 tabs in all. This is how I am adding them :

for (int i = 0; i < tabs.length; i++) {

                if (i == 0) {
                    actionBa         


        
3条回答
  •  猫巷女王i
    2020-12-18 14:47

    Use the following code for changing the size of tab and making tabs fit within the screenwidth. Make sure your are using the Custom View

    DisplayMetrics displaymetrics = new DisplayMetrics();
               getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
               int screenWidth = displaymetrics.widthPixels;          
               final View tabView = actionBar.getTabAt(0).getCustomView();
               final View tabContainerView = (View) tabView.getParent();
               final int tabPadding = tabContainerView.getPaddingLeft() + tabContainerView.getPaddingRight();
               final int tabs = actionBar.getTabCount();
               for(int i=0 ; i < tabs ; i++) {
                   View tab = actionBar.getTabAt(i).getCustomView();
              LinearLayout tabItemLayout = (LinearLayout) tab.findViewById(R.id.tabItemLayout);
              tabItemLayout.setLayoutParams(new LayoutParams(screenWidth/tabs-tabPadding-1, LayoutParams.WRAP_CONTENT));
              }
    

提交回复
热议问题