问题:Activity中嵌套多个fragment进行布局切换,通常情况下,我们在fragment的onCreatView()的方法返回的View就可以操作对应fragment的布局控件,但当我们想在fragment中操作Activity中的控件时,通过以下方式,发现对Activity中的控件操作无效
<span style="font-size:24px;">slidingTabLayout = ((SlidingTabLayout)LayoutInflater.from(getContext()).inflate(R.layout.fragment_Home_tabLayout, null)
slidingTabLayout.setBackgroundColor(Color.argb(0, 0, 0, 0));</span>
解决方法:使用getActivity()方法取代 LayoutInflater.from( getContext ).inflate( xxx );
<span style="font-size:24px;">slidingTabLayout = ((SlidingTabLayout) getActivity().findViewById(R.id.fragment_Home_tabLayout));</span>
<span style="font-family: Arial, Helvetica, sans-serif; text-align: center;"><span style="font-size:14px;">slidingTabLayout.setBackgroundColor(Color.argb(0, 0, 0, 0));</span></span>
原因是通过 LayoutInflater填充器获得的View是新生成对View 与Activity中setContentView(R.layout.activity_main)生成View不是同一对象,操作对象不同,效果自然无效
使用getActivity()方法可以获取当前Activity中所有控件(包括在fragment中的子控件)
以上。