如何使用 FragmentManager 在 FrameLayout 中显示 Fragment A、B、C...?

发布于 2024-12-10 19:48:42 字数 1196 浏览 0 评论 0原文

亲爱的 StackOverflow 用户,

我的 Android 应用程序目前遇到一个大问题。

我在所有活动中使用 Fragments,并且在这里阅读了所有文档: http:// /developer.android.com/guide/topics/fundamentals/fragments.html

我的应用程序现在在手机和平​​板电脑上具有非常酷的外观。

我的问题:

我有一个布局,显示包含在 FrameLayout 中的 Fragment(请参见底部的屏幕截图)

所以,这是带有 Fragment A 的屏幕截图

。现在,我想在单击左侧时按钮,用片段 B 或 C 替换片段 A,或者...

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment android:name="com.stackoverflow.question.FRAGMENT_A"
            android:id="@+id/list"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</FrameLayout>

正如您在我的 xml 中看到的,FRAGMENT_A 是硬编码的。

假设我想在 6 个不同的片段之间切换,我应该做什么? 将我所有的 6 个片段放入 XML 中,或者有没有办法以编程方式将 FRAGMENT_A 替换为 FRAGMENT_B、C、D、E 等。

非常感谢您的帮助。

在此处输入图像描述

Dear StackOverflow people,

I have currently one big issue in my Android application.

I am using Fragments for all my activities and I read all the doc here: http://developer.android.com/guide/topics/fundamentals/fragments.html

My application has now a very cool look on phones and tablets.

My question:

I have a layout displaying a Fragments that is included in a FrameLayout (see screenshot at the bottom)

So, this is a screenshot with Fragment A.

Now, I would like when clicking on a left button, to replace the Fragment A with Fragment B, or C, or...

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <fragment android:name="com.stackoverflow.question.FRAGMENT_A"
            android:id="@+id/list"
            android:layout_weight="1"
            android:layout_width="0dp"
            android:layout_height="match_parent" />
</FrameLayout>

As you can see in my xml, FRAGMENT_A is hardcoded.

Imagine I want to switch between 6 different fragments, what shoulmd I do?
Put all my 6 Fragments in the XML, or is there a way to replace programmatically FRAGMENT_A with FRAGMENT_B, C, D , E, etc.

Thank a lot for your help.

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

别想她 2024-12-17 19:48:42

使用 FragmentTransaction 来替换片段。

您可以通过编程方式替换片段。

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
FragmentB fb = new FragmentB();
ft.replace(R.id.list, fb);
ft.addToBackStack("replacingFragmentA");
ft.commit();

添加到后台堆栈是可选的。

use FragmentTransaction to replace fragments.

you can do the replace of fragments programatically.

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
FragmentB fb = new FragmentB();
ft.replace(R.id.list, fb);
ft.addToBackStack("replacingFragmentA");
ft.commit();

add to back stack is optional.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文