我正在尝试增加应用中标签的图标大小。图标大小是固定的,尝试了很多方法,但没有任何效果,最后尝试了以下但没有改变大小。请如果有人能告诉我正确的方法,我会很高兴。提前谢谢。
这是我的代码,
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
<style name="AppTheme.ActionBar" parent="Widget.AppCompat.Light.ActionBar">
<item name="android:layout_width">50dp</item>
<item name="android:layout_height">50dp</item>
</style>
tablayout.xml
<android.support.design.widget.TabLayout
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"/>
最佳答案
您好,我之前遇到过同样的问题,这是我能找到的最佳解决方案:
你应该使用(setCustomView),首先制作一个新的布局文件 让我们命名它(customtab.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:id="@+id/icon"
android:layout_gravity="center_horizontal" />
</LinearLayout>
然后对每个选项卡执行以下操作:(使用相同的布局 .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));
...
或 以类似的方式
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);
}
}
关于android - 如何在 TabLayout 中增加选项卡的图标大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34237896/