使用片段更改 Honeycomb 上的布局

发布于 2024-12-14 20:47:08 字数 711 浏览 0 评论 0原文

在我的应用程序中,操作栏中有三个选项卡。

Tab A : contains 2 fragments
Tab B : contains a WebViewFragment
Tab C : contains a WebViewFragment

现在,我使用包含 LinearLayout 的全局布局。 我根据选项卡在 LinearLayout 中膨胀正确的布局。但是当我在 B -> 之间切换时答,我收到此错误:

Caused by: java.lang.IllegalArgumentException: Binary XML file line #8: Duplicate id 0x7f0a0002, tag null, or parent id 0xffffffff with another fragment for com.myapp.CategoriesFragment

处理此问题的最佳解决方案是什么?

我尝试删除AllViews/重新添加布局,但出现此异常:

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

我认为我没有选择正确的解决方案。 感谢您的回答

In my application, I have three tabs in the Action Bar.

Tab A : contains 2 fragments
Tab B : contains a WebViewFragment
Tab C : contains a WebViewFragment

Now, I use a global layout containing a LinearLayout.
I inflate the right layout in the LinearLayout according to the tab. But when I switch between B -> A, I get this error :

Caused by: java.lang.IllegalArgumentException: Binary XML file line #8: Duplicate id 0x7f0a0002, tag null, or parent id 0xffffffff with another fragment for com.myapp.CategoriesFragment

What is the best solution to handle this ?

I have tried to removeAllViews / reAdd the layout, but I get this Exception :

java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

I think I haven't choose the right solution.
Thanks for your answers

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

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

发布评论

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

评论(1

抱猫软卧 2024-12-21 20:47:08

您可以选择一个内部容器来容纳碎片
请参阅下面的示例布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

    <LinearLayout android:id="@+id/fragment_container"    
          xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical" android:layout_width="fill_parent"
      android:layout_height="wrap_content"/>
</LinearLayout>

You can choose an inner container to hold the fragments
Refer to the sample layout below

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">

    <LinearLayout android:id="@+id/fragment_container"    
          xmlns:android="http://schemas.android.com/apk/res/android"
      android:orientation="vertical" android:layout_width="fill_parent"
      android:layout_height="wrap_content"/>
</LinearLayout>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文