如何使用 FragmentManager 在 FrameLayout 中显示 Fragment A、B、C...?
亲爱的 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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用 FragmentTransaction 来替换片段。
您可以通过编程方式替换片段。
添加到后台堆栈是可选的。
use FragmentTransaction to replace fragments.
you can do the replace of fragments programatically.
add to back stack is optional.