对多个活动使用一种布局
布局实例使用方法为每个活动膨胀setContentView
,通常在onCreate
:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_common_layout);
}
所以XML
对于不同的活动使用相同的布局是没有问题的。
在另一个活动中显示一个活动
您可以使用Fragment
API 来完成任务。请参阅开发人员指南中的完整详细信息。
声明这样的布局,Android 将为您创建片段:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<fragment android:name="com.example.MyFragment"
android:id="@+id/my_fragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
然后创建一个MyFragment
类并在适当的时候加载它。
自己创建片段。不要定义Fragment
inXML
布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/my_parent_layout">
</LinearLayout>
创建父母后Activity
,您可以通过以下方式添加新Fragment
的:
FragmentManager fragmentManager = getFragmentManager()
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
MyFragment fragment = new MyFragment();
fragmentTransaction.add(R.id.my_parent_layout, fragment);
fragmentTransaction.commit();
这里MyFragment
是这样定义的:
public class MyFragment extends Fragment {
...
}
如果您的目标是 Android 3.0 以下,请考虑为此使用支持包。