tablayout 增加数字小标,如何在TabLayout中增加选项卡的图标大小

  • Post author:
  • Post category:其他


I am trying to increase icon size of tabs in my app. Icon sizes are fixed tried out many ways but nothing is working, finally tried the following but no change in size.Please if any one can tell me the right way I will be glad.Thanks in advance.

Here is my code,

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

setSupportActionBar(toolbar);

TabLayout tabLayout = (TabLayout) findViewById(R.id.tab_layout);

tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.my1));

tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.feed_s));

tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.add_ds1));

tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.history_ds));

tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);

style.xml

50dp

50dp

tablayout.xml

android:id=”@+id/tab_layout”

android:layout_width=”match_parent”

android:layout_height=”60dp”

android:layout_below=”@+id/toolbar”

android:background=”?attr/colorPrimary”

android:elevation=”6dp”

android:theme=”@style/AppTheme.ActionBar”/>

解决方案

Hi I faced the same problem before and this is the best solution I could find:

You should use (setCustomView), first of all make a new layout file

lets name it (customtab.xml):

android:orientation=”vertical”

android:layout_width=”match_parent”

android:layout_height=”match_parent”>

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:scaleType=”fitCenter”

android:id=”@+id/icon”

android:layout_gravity=”center_horizontal” />

Then and for each tab do this: (use the same layout .xml)

View view1 = getLayoutInflater().inflate(R.layout.customtab, null);

view1.findViewById(R.id.icon).setBackgroundResource(R.drawable.my1);

tabLayout.addTab(tabLayout.newTab().setCustomView(view1));

View view2 = getLayoutInflater().inflate(R.layout.customtab, null);

view2.findViewById(R.id.icon).setBackgroundResource(R.drawable.my2);

tabLayout.addTab(tabLayout.newTab().setCustomView(view2));

View view3 = getLayoutInflater().inflate(R.layout.customtab, null);

view3.findViewById(R.id.icon).setBackgroundResource(R.drawable.my3);

tabLayout.addTab(tabLayout.newTab().setCustomView(view3));

OR

in a similar way

public static final int[] tabIcon = {R.drawable.icon_one, R.drawable.icon_two, R.drawable.icon_three};

private void setCustomTabs() {

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

View view = getLayoutInflater().inflate(R.layout.customtab,null);

TabLayout.Tab tab = tabLayout.getTabAt(i);

view.findViewById(R.id.icon).setBackgroundResource(tabIcon[i]);

if(tab!=null) tab.setCustomView(view);

}

}