ebt*_*kyo 14 android material android-5.0-lollipop
有没有办法以编程方式更改原色.我想根据应用程序的屏幕/状态在代码中执行此操作.
目前我只能在主题中设置颜色(静态):
<item name="android:colorPrimary">@color/primary_color</item>
<item name="android:colorPrimaryDark">@color/dark_color</item>
<item name="android:colorBackground">@android:color/white</item>
<item name="android:colorAccent">@color/primary_color</item>
<item name="android:colorControlHighlight">@color/primary_color</item>
Run Code Online (Sandbox Code Playgroud)
谢谢
yog*_*arl 12
当然,您可以实现具有设置颜色的方法的View的自定义子类.
您还可以使用各种颜色方案定义多个主题.
视图在创建时从上下文中查找主题信息.因此,要更改从主题应用的样式,您必须使用使用正确主题的上下文重新创建视图层次结构.
一种方法是创建一个新的ContextThemeWrapper,然后获得一个使用该主题包装器的LayoutInflator,删除旧版本的布局并重新扩展您的布局.
大致:
ContextThemeWrapper themeWrapper = new ContextThemeWrapper(this, R.style.AppThemeWithColorScheme2);
LayoutInflater layoutInflater = LayoutInflater.from(themeWrapper);
viewContainer.removeAllViews();
layoutInflater.inflate(R.layout.my_layout, viewContainer, true );
Run Code Online (Sandbox Code Playgroud)
如果您正在使用Action Bar,那可能会有点棘手,因为每个活动都会创建一次 Action Bar .
| 归档时间: |
|
| 查看次数: |
21500 次 |
| 最近记录: |