最近的开发中遇到了这个问题,我采用了一种比较取巧的方法来实现:
在布局文件中设置两个要替换的页面的visibility属性:
<include android:id="@+id/include1" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1.1" layout="@layout/footer_friendsinfo" /> <include android:id="@+id/include2" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1.1" android:visibility="gone" layout="@layout/footer_asured_info" />
即一个暂时显示,另一个处于隐藏状态(Android中控件visibility属性的三种状态:
可见(visible)
XML文件:android:visibility="visible"
Java代码:view.setVisibility(View.VISIBLE);
不可见(invisible)
XML文件:android:visibility="invisible"
Java代码:view.setVisibility(View.INVISIBLE);
隐藏(GONE)
XML文件:android:visibility="gone"
Java代码:view.setVisibility(View.GONE);)
接着在相应的Java文件中获取布局对象,设置其Visibility属性:
//更换布局 LinearLayout layout1 = (LinearLayout) v.findViewById(R.id.include1); LinearLayout layout2 = (LinearLayout) v.findViewById(R.id.include2); layout1.setVisibility(View.GONE); layout2.setVisibility(View.VISIBLE);
这样就可以实现局部布局的替换了。