Android studio:如何在同一个页面显示多个fragment

家母罹患肝癌,可在水滴筹页面查看详情

实现一个简单的效果:

创建 TestOneFragment

java 复制代码
public class TestOneFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        // 使用一个简单的布局文件
        return inflater.inflate(R.layout.fragment_test_one, container, false);
    }
}

对应的 XML 布局文件:

XML 复制代码
<!-- res/layout/fragment_test_one.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <TextView
        android:id="@+id/textViewOne"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is Test One Fragment" />
</LinearLayout>

测试显示,布局文件的layout_height为match_parent时可以正常显示

创建 TestTwoFragment

java 复制代码
public class TestTwoFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        return inflater.inflate(R.layout.fragment_test_two, container, false);
    }
}

对应的XML 布局文件:

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:background="@android:color/holo_red_light"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="This is Test Two Fragment"
        android:textSize="18sp"
        android:textColor="@android:color/white"/>
</LinearLayout>

在主界面添加 Fragment

然后,在你的活动中(比如 MainActivity)添加这两个 Fragment。我们可以通过 FragmentTransaction 将两个 Fragment 添加到同一个容器布局中。

java 复制代码
public class MainActivity6 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main6);
        Log.d("FragmentTest", "Adding fragments...");
        // 获取 FragmentManager 和 FragmentTransaction
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

        // 创建两个 Fragment 实例
        TestOneFragment testOneFragment = new TestOneFragment();
        TestTwoFragment testTwoFragment = new TestTwoFragment();

        // 将 Fragment 添加到容器中
        fragmentTransaction.add(R.id.fragmentContainerOne, testOneFragment);
        fragmentTransaction.add(R.id.fragmentContainerTwo, testTwoFragment);

        // 提交事务
        fragmentTransaction.commit();
        Log.d("FragmentTest", "Fragments added.");
    }
}

MainActivity 的布局文件中,定义两个 FrameLayout 容器,用来显示两个 Fragment

XML 复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <!-- 第一个 Fragment 容器 -->
    <FrameLayout
        android:id="@+id/fragmentContainerOne"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:background="@android:color/holo_blue_light"
        android:layout_marginBottom="16dp" />

    <!-- 第二个 Fragment 容器 -->
    <FrameLayout
        android:id="@+id/fragmentContainerTwo"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:background="@android:color/holo_green_light"/>
</LinearLayout>
相关推荐
lxysbly1 小时前
n64模拟器安卓版带金手指2026
android
游戏开发爱好者84 小时前
日常开发与测试的 App 测试方法、查看设备状态、实时日志、应用数据
android·ios·小程序·https·uni-app·iphone·webview
王码码20354 小时前
Flutter for OpenHarmony 实战之基础组件:第三十一篇 Chip 系列组件 — 灵活的标签化交互
android·flutter·交互·harmonyos
黑码哥4 小时前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder
亓才孓4 小时前
[JDBC]元数据
android
独行soc4 小时前
2026年渗透测试面试题总结-17(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
金融RPA机器人丨实在智能5 小时前
Android Studio开发App项目进入AI深水区:实在智能Agent引领无代码交互革命
android·人工智能·ai·android studio
科技块儿5 小时前
利用IP查询在智慧城市交通信号系统中的应用探索
android·tcp/ip·智慧城市
独行soc5 小时前
2026年渗透测试面试题总结-18(题目+回答)
android·网络·安全·web安全·渗透测试·安全狮
王码码20356 小时前
Flutter for OpenHarmony 实战之基础组件:第二十七篇 BottomSheet — 动态底部弹窗与底部栏菜单
android·flutter·harmonyos