我在我的应用程序中实现了 android日/夜主题,原因有些。
1)我无法更改我的文字颜色,并且为了使其正常工作我必须点击切换按钮然后返回主屏幕,表示在设置页面中显示不,并且必须刷新才能转到主页
2)我面临的第二个问题是,当应用日/夜主题时,我的 recyclerView 帖子将返回到列表中的第一,并且不会仅仅应用它在哪里。
请帮助!!。
我正在使用Android studio
日/夜主题类文件:
public class settings extends AppCompatActivity {
private ToggleButton DayNightt;
private static Bundle bundle = new Bundle();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.settings_page);
DayNightt = (ToggleButton) findViewById(R.id.dayNight_Switch);
DayNightt.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked){
if (isChecked){
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);
}else{
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO);
}
}
});
}
@Override
public void onPause() {
super.onPause();
bundle.putBoolean("ToggleButtonState", DayNightt.isChecked());
}
@Override
public void onResume() {
super.onResume();
DayNightt.setChecked(bundle.getBoolean("ToggleButtonState",false));
}
}
color-night xml文件:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimaryNight">#222222</color>
<color name="colorPrimaryDarkNight">#222222</color>
<color name="colorAccentNight">#FF4081</color>
<color name="textColorPrimaryNight">#FFFFFF</color>
<color name="colorBackgroundNight">#000000</color>
</resources>
style-night xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<item name="colorPrimary">@color/colorPrimaryNight</item>
<item name="colorPrimaryDark">@color/colorPrimaryDarkNight</item>
<item name="colorAccent">@color/colorAccentNight</item>
<item name="android:windowBackground">@color/colorBackgroundNight</item>
<item name="android:textColorPrimary">@color/textColorPrimaryNight</item>
</style>
</resources>
样式xml:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:textColorPrimary">@color/textColorPrimary</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
color xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#824c83dd</color>
<color name="textColorPrimary">#000000</color>
<color name="colorPrimaryDark">#303f9f</color>
<color name="colorAccent">#FF4081</color>
<color name="SourceColor">#00bdbdbd</color>
<color name="background">#FFFFFF</color>
</resources>
答案 0 :(得分:1)
我通过添加以下代码成功实现了色彩校正部分:
颜色xml文件:
<color name="TextP">#000000</color>
color-night xml文件:
<color name="TextP">#FFFFFF</color>
然后在colors.xml
中为我的文本指定与上面相同的颜色但其他部分对我来说仍然是一个问题,所以如果有人可以提供帮助,请。
答案 1 :(得分:0)
如何在color-night.xml中添加您在普通color.xml中使用的字符串? <color name="textColorPrimary">#000000</color>