android - 如何更改选项卡布局中选择的选项卡的颜色
问题描述
如何更改所选选项卡的颜色?我希望每个选项卡都有自己的颜色属性。因此,选择的选项卡 1 将是红色。选择的选项卡 2 将是蓝色。选择的选项卡 3 为黄色。未选中时,它们会返回选项卡的原始颜色。
目前,我正在使用选择器来更改所选选项卡的背景。但是,这只允许一种颜色。我想要多种颜色
这是 unselected_tab.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@color/colorPrimaryDark" />
</shape>
这是 selected_tab.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="@color/tabSelectedColor" />
</shape>
这是我正在使用的选择器
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android"
android:enterFadeDuration="50"
android:exitFadeDuration="50" >
<item android:drawable="@drawable/tab_selected"
android:state_selected="false" />
<item android:drawable="@drawable/tab_unselected"
android:state_selected="true"/>
</selector>
我将它应用到 tablayout 背景
<com.google.android.material.tabs.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimaryDark"
android:minHeight="?attr/actionBarSize"
android:elevation="5dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:tabIndicatorColor="@android:color/white"
app:tabMode="scrollable"
app:tabMaxWidth="100dp"
app:tabBackground="@drawable/tab_selector"
/>
理想情况下,我希望每个选项卡都有自己单独的颜色。
怎么能做到这一点?
编辑:理想情况下,我希望以编程方式更改每个选项卡颜色
解决方案
对于任何正在寻找解决方案的人。我能够找到一个。您可以将颜色应用于 tabLayout 的子项的布局。对于一些参考代码,这是我使用的非常适合我的代码
final LinearLayout tabsContainerLayout = (LinearLayout)expenseTabs.getChildAt(0);
Linear LayouttempLinearLayout = (LinearLayout)tabsContainerLayout.getChildAt(selectedTabPosition);
tempLinearLayout.setBackgroundColor(Color.RED);
推荐阅读
- jquery - 如何使用 MVC Core 获得局部视图的运行总计?
- python - Django中的作业调度
- python - 当 DynamoDB 中不存在项目时,如何使用 Python (boto3) 强制 delete_item 返回错误?
- reactjs - React - 如何显示/隐藏组件,以便即使未渲染组件也能保持状态
- c++ - 对于这个 Codeforces 问题,有没有比仅仅使用蛮力更好的解决算法?
- c# - 使用 ASP.NET 身份在 ASP.NET MVC 5 应用程序中进行身份验证
- r - 从 LASSO 输出创建 model.matrix()
- amazon-web-services - 如何将我的结构放入 Rust 中 AWS Kinesis 的 PutRecordInput?
- python - 尝试将字典传递给熊猫数据框时,如何解决: ValueError: If using all scalar values, you must pass an index
- python - 如何在 NLTK 中为二元语言模型在单词级别执行 Kneser-Ney 平滑?