多个fragment同时设置背景色的问题

最近碰上了很多奇葩的需求.......(想打人)

比如:通过assets文件下的一json文件,动态切换UI风格(就是,drawerlayout风格或者BottomNavigationBar风格.......)

为什么要这么做呢,插件化开发不是更好嘛?

产品:不,我就不,我就要这个

好好好,满足你。上json


APP风格的配置文件

当然json文件是不能写注释的,为了贴出来看的明白(很不专业);

看到没,需求就是,事前并不知道有几个模块,全都是动态配置的;

跑题了,下面来说正题;

我有一个BaseFragment,想在BaseFragment的onStart()方法中给所有继承BaseFragment的设置一个背景色(或者之类的属性)

问题来了,通过如下方式获取view的id,并设置背景色的时候,只有第一个fragment起作用,其他fragment并没有效果,为什么呢?

View view = getActivity().findViewById(R.id.background_base);// background_base为所有fragment根布局的id

解决方式如下:

View view = getView().findViewById(R.id.background_base);

通过getView()获取fragment的控件id即可解决上述问题;

在此记录一下

推荐阅读更多精彩内容