在Android设计库中使用TabLayout的图标选项卡

时间:2015-06-14 11:44:21

标签: android android-tabhost android-tabs android-design-library

我正在尝试在Android设计库中使用新的TabLayout创建仅带图标的应用栏。

像这样: enter image description here

如何使用新的TabLayout Android设计库进行操作。

有一个简单的解决方案,或者我只能使用setCustomView。我试图避免使用它。因为我没有像上面这张图片那样获得图标的色调。

我试着这样写:

tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.ic_dashboard))

但是当我选择标签

时,图标仍然保持相同的颜色

3 个答案:

答案 0 :(得分:9)

您必须为图标创建 protected override void OnActionExecuting(ActionExecutingContext filterContext) { var filters = new List<FilterAttribute>(); filters.AddRange(filterContext.ActionDescriptor.GetFilterAttributes(false)); filters.AddRange(filterContext.ActionDescriptor.ControllerDescriptor.GetFilterAttributes(false)); var roles = filters.OfType<AuthorizeAttribute>().Select(f => f.Roles); ... } 。例如:

selector

答案 1 :(得分:1)

我这样使用它: 在drawable中创建了一个xml文件,如@Budius所示。

代码中的

tabLayout.getTabAt(0).setIcon(R.drawable.settings_tab_drawable);

等等。

答案 2 :(得分:-2)

我解决了这个问题:

tint_tab.xml

<com.hannesdorfmann.appkit.image.TintableImageView
 xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:app="http://schemas.android.com/apk/res-auto"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 app:tint="@color/tab_color_selector"/>

在你的java代码

TintableImageView tab1 = (TintableImageView) LayoutInflater.from(this).inflate(R.layout.tint_tab, null);
tab1.setImageResource(R.drawable.ic_dummy);
mTabLayout.getTabAt(0).setCustomView(tab1)

参考:https://github.com/sockeqwe/appkit/blob/master/image/src/main/java/com/hannesdorfmann/appkit/image/TintableImageView.java