84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
我现在在给Activity动态换主题时先把Theme id保存在SharedPreferences中,然后用RxBUs发送事件总线让Activity改变Theme,然而这样只有再次打开该Activity主题才会改变;我想通过Activity.recreate()方法立即改变其主题但是有明显闪动,请问有什么好的方法让其不闪动?
ringa_lee
如果是在Activity中切换,可以考虑按照切换后的主题方案分别设置当前界面所有可见元素的属性;如果是在Fragment中切换,fragment也可以设置theme,像这样:
@Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { final Context contextThemeWrapper = new ContextThemeWrapper( getActivity(), isDay ? R.style.day : R.style.night); LayoutInflater localInflater = inflater .cloneInContext(contextThemeWrapper); View v = localInflater.inflate(R.layout.fragment_layout, container, false); return v; }
github上哔哩哔哩开源了一个方案,你可以去看一下
如果是在Activity中切换,可以考虑按照切换后的主题方案分别设置当前界面所有可见元素的属性;如果是在Fragment中切换,fragment也可以设置theme,像这样:
github上哔哩哔哩开源了一个方案,你可以去看一下