Android 片段重叠

2024-01-01

我有一个包含两个片段的活动,一个用于显示列表,一个用于显示单击项目的详细信息。启动应用程序时,详细信息部分是静态的,一旦我单击某个项目,它就应该被替换。问题是旧片段没有被替换,所以两个视图都在彼此之上。

我的活动布局是:

<?xml version="1.0" encoding="utf-8"?>
<fragment
    android:id="@+id/listFragment"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="1"
    class="com.fragments.FragmentOrderList" >
</fragment>

<fragment
    android:id="@+id/detailFragment"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="2"
    class="com.fragments.FragmentOrderDetails" >

</fragment>

详细信息片段的布局是:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >


<TextView
    android:id="@+id/tvOrderDetail"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="test view of details fragment" >
</TextView>

在上面的布局中,我们还看到了最初看到的静态文本。我的活动中替换片段的代码是这样的

        FragmentTransaction transaction = getFragmentManager().beginTransaction();
    FragmentOrderDetails newFragment = new FragmentOrderDetails();
    newFragment.setArguments(b);
    transaction.replace(R.id.detailFragment, newFragment);

    transaction.addToBackStack(null);
    transaction.commit();

对我来说,它看起来不是“替换”,而是“添加”。我是否必须始终删除旧片段?或者我必须在这里采用不同的方法吗?在我看来,只有原始片段保留在那里,在第二个、第三个……替换前一个片段时,它被正确替换,只有静态片段始终保留在那里。


而不是在布局中使用xml fragment:

<fragment
    android:id="@+id/detailFragment"
    android:layout_width="0dp"
    android:layout_height="match_parent"
    android:layout_weight="2"
    class="com.fragments.FragmentOrderDetails" >

</fragment>

使用一些容器,例如LinearLayout or FrameLayout与一些containerId。 然后首先使用containerId以编程方式将片段添加到该容器,然后也用containerId替换该容器的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 片段重叠 的相关文章

随机推荐

  • Python 中的多元求根

    使用 Excel 求解器 很容易找到该方程的解 x 和 y 的最佳值 x 14 80461 y 4 9233 10 0 4803 0 但是 我不知道如何在 Python 中执行此操作 现有的 scipy 优化库函数 如 fsolve 或 l
  • 为什么相互让步使 ArrowApply 和 Monads 等效,而不像 Arrow 和 Applicative?

    这是我要参考的SO帖子 https stackoverflow com a 24668518 11143763 另外 我将使用与该问题中的OP相同的片段 以免分离材料 https stackoverflow com q 24668313 1
  • gitignore 跨所有分支?

    嘿 我正在尝试进入 git 作为 emacs 用户 首先要做的就是确保 git 忽略 和 文件 文档讨论了我一直在使用的 gitignore 然而 仍然有几个问题 gitignore 现已签入并部分 的一个分支 gitignore 应该是
  • Ruby HTTP 获取参数

    如何通过 ruby 发送带参数的 HTTP GET 请求 我尝试了很多例子 但都失败了 我知道这篇文章已经很旧了 但是为了那些由 google 带到这里的人 有一种更简单的方法可以以 URL 安全的方式对参数进行编码 我不知道为什么我没有在
  • 异或 Java 神经网络

    尝试使用 Java 中的 XOR 神经网络 但网络总是预测其训练的最终输出 这是我的代码 for int i 0 i lt 4 i Forward pass diff 1 while diff gt 0 01 SumError 0 Y1 I
  • 比较 MySQL 和 Java 时间

    我在 MySQL 中有一个日期时间字段 我通过调用 result getString date 访问它 现在我想检查天气 Java 中的当前日期和时间已经超过 MySQL 时间或早于 MySQL 时间来检查天气结果是否激活 MySQL 中的
  • 如何将短数组转换为字节数组

    我已经发现将短数组转换为字节数组 https stackoverflow com questions 2188660 convert short to byte in java and 字节数组转短数组 https stackoverflo
  • 如何以自定义方式在我的 Zend Framework 应用程序中实现 jquery?

    如何以自定义方式在我的 Zend Framework 应用程序中实现 jquery 附加 jquery jsok 附加脚本ok 将 POST 数据发送到控制器ok 处理发布的数据ok 发送 AjaxContext 响应给客户端now ok
  • C++03中如何在没有临时变量的情况下将数据立即填充到容器中

    假设我有一个Container template
  • 如何列出oracle中特定存储过程中使用的所有表

    我需要获取 Oracle 中特定存储过程中使用的所有表的列表 如何使用查询获取该列表 Dynamic SQLs 被跳过 因为它们没有在SEMANTIC编译期间检查 select proc syn referenced owner proc
  • 在 Powershell 中替换字符串中变量的成员

    我在 PowerShell 脚本中有以下字符串表达式 select count cnt from schema table where col column name is null 架构和表分别解析为 schema 和 table 的值
  • 使用非默认构造函数初始化成员类

    我正在尝试制作一个具有 SimpleWindow 类的 gui 其中包含 textPanel 类 class textPanel private std string text m public textPanel std string s
  • 由于 CMake 缺少 OpenSSL,无法构建 libwebsockets 库

    我正在尝试建立libwebsockets https libwebsockets org 在 Windows 10 上使用 CMake 和 MinGW 该库需要 OpenSSL 环境变量 OPENSSL CONF C Program Fil
  • 如何将外部字体加载到 HTML 文档中?

    如何将外部字体文件加载到 HTML 文档中 例子 使用 HTML CSS 和 或 JAVASCRIPT 将同一目录中的 TTF 文件中的文本 blah blah blah blah blah blah blah 设为自定义字体 看看这个分开
  • GCM XMPP 套接字在发送通知时始终获取 EPIPE 并断开连接

    我们有一个 xmpp 连接服务器 它将套接字连接到 GCM XMPP 端点并开始发送通知 我们注意到的一件事是发送半大通知 例如少至 1000 个设备 时 套接字会突然断开连接收到以下错误消息 Client disconnected soc
  • 如何在 M1 mac 上使用 C++ 运行 mediapipe

    环境 Macbook Air M1 2020 大苏尔 11 3 1 我想做什么 我想成功运行下面的 mediapipe c hello world https google github io mediapipe getting start
  • 使用密码将git项目推送到本地目录

    我目前正在将我的项目推送到 Dropbox 可以访问的本地文件夹 这就是我的备份和安全策略 我想知道是否可以添加另一层安全保护 这样如果有人获取了我的 Dropbox 文件夹 他们就必须输入密码才能提取该项目 当我添加新的遥控器时指定密码就
  • Fortran 90 或 2003 中的访问运算符“[ ]、( )、{ }”重载

    我可以在 FORTRAN 2003 中重载派生数据类型的条目访问运算符 或 吗 在下面的示例中 我想为派生数据类型 custom 定义访问方案 type custom integer dimension allocatable a end
  • php 提供下载后刷新[重复]

    这个问题在这里已经有答案了 第 1 页链接到第 2 页 第 2 页使用以下代码提供下载 header Content disposition attachment filename filename header Content type
  • Android 片段重叠

    我有一个包含两个片段的活动 一个用于显示列表 一个用于显示单击项目的详细信息 启动应用程序时 详细信息部分是静态的 一旦我单击某个项目 它就应该被替换 问题是旧片段没有被替换 所以两个视图都在彼此之上 我的活动布局是