Android 动态添加的视图不会使用样式
Android dynamically added views won't use style
我花了最后一天时间来找出我的错误,但我找不到它...
我有一个 activity 没有任何内容,它是稍后动态加载的。
清单看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.marcel.recipes">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".emptyActivity" />
</application>
</manifest>
虽然我的 mainActivity 使用了所有需要的颜色,但我的 emptyActivity 忽略了它们。
activity 包含复选框和一个 TextView,它们的文本颜色均为 #000000,当我单击它时,复选框的颜色为 #80CBC4。
当我使用设计器添加视图时,颜色会按需要加载,但动态添加的颜色不会加载。
在 xml 布局上定义的视图可以使用您的自定义样式是因为当系统膨胀您的布局 xml 时,它会提取此值并将它们应用于您的视图,但是当您创建视图时使用java 动态编码它不会,所以你应该使用 java 代码在你的样式文件中提取这个值并为你的视图设置这个值。
我花了最后一天时间来找出我的错误,但我找不到它... 我有一个 activity 没有任何内容,它是稍后动态加载的。
清单看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.marcel.recipes">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".emptyActivity" />
</application>
</manifest>
虽然我的 mainActivity 使用了所有需要的颜色,但我的 emptyActivity 忽略了它们。 activity 包含复选框和一个 TextView,它们的文本颜色均为 #000000,当我单击它时,复选框的颜色为 #80CBC4。
当我使用设计器添加视图时,颜色会按需要加载,但动态添加的颜色不会加载。
在 xml 布局上定义的视图可以使用您的自定义样式是因为当系统膨胀您的布局 xml 时,它会提取此值并将它们应用于您的视图,但是当您创建视图时使用java 动态编码它不会,所以你应该使用 java 代码在你的样式文件中提取这个值并为你的视图设置这个值。