前言
在一个嵌套布局中获取父类的控件,通过子类中的触发事件或方法,来调用或修改父类控件的状态。
应用场景示例:在Activity
中嵌入多个fragment
页面,在切换不同的fragment
时候,变换父类Activity
中的标题栏TextView
中的文字标题内容。那么可以在每个fragment
中取到父类Activity
中的TextView
控件实例,然后对其重新赋值。
一.如果父类容器是Activity
TextView txt_title =(TextView)getActivity().findViewById(R.id.txt_title);
txt_title.setText("标题一");
在子类布局中调用父类的控件,可运用getActivity()
取到以Activity
为父类容器的上下文,然后通过findViewById()
取到父类的控件,就可以在子类布局中获取到实例,进而修改其属性值。
二.如果父类容器是Fragment
TextView txt_title =(TextView)getParentFragment().getView().findViewById(R.id.txt_title);
txt_title.setText("标题二");
同理,运用getParentFragment().getView()
可以取到以Fragment
为父类容器的上下文,然后通过findViewById()
取到父类的控件,就可以在子类布局中获取到实例,进而修改其属性值。