一个Acyivity中多个fragment怎么使用
时间: 2024-05-15 12:14:52 浏览: 12
在一个Activity中使用多个Fragment需要以下步骤:
1. 在Activity布局文件中添加一个或多个FrameLayout用于放置Fragment。
2. 创建Fragment类,并在onCreateView()方法中加载Fragment的布局文件。
3. 在Activity中使用FragmentManager管理Fragment,通过FragmentTransaction添加、删除、替换或隐藏/显示Fragment。
4. 可以使用接口(Interface)或回调(Callback)实现Fragment与Activity之间的通信。
示例代码:
1. 在Activity布局文件中添加FrameLayout:
```
<FrameLayout
android:id="@+id/container1"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@+id/container2"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
```
2. 创建Fragment类,例如FragmentA:
```
public class FragmentA extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_a, container, false);
// 初始化视图
return view;
}
}
```
3. 在Activity中使用FragmentManager管理Fragment:
```
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FragmentA fragmentA = new FragmentA();
fragmentTransaction.add(R.id.container1, fragmentA);
fragmentTransaction.commit();
```
4. Fragment与Activity之间的通信:
在Fragment中定义接口:
```
public interface OnButtonClickListener {
void onButtonClick(String text);
}
```
在Activity中实现接口:
```
public class MainActivity extends AppCompatActivity implements FragmentA.OnButtonClickListener {
@Override
public void onButtonClick(String text) {
// 处理接收到的文本
}
}
```
在Fragment中调用Activity的接口方法:
```
if (getActivity() instanceof OnButtonClickListener) {
OnButtonClickListener listener = (OnButtonClickListener) getActivity();
listener.onButtonClick("Hello");
}
```