片段未显示

2024-04-10

我遇到一个问题,我可以创建一个片段,它的视图似乎已创建,但没有显示。片段本身已创建,内部的任何代码都可以正常运行,但它只是在某处不可见。后退按钮也可以很好地与它交互(它“关闭”它),它只是没有实际显示在屏幕上(仅显示主布局)。

来自我的 FragmentActivity:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_view);

    // some logic here that sets a button listener that calls openAddNamePane() when pressed
}

public void openAddNamePane(){
    AddNamePane addNamePane = new AddNamePane();
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.layout_root, addNamePane, "AddnamePane");
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
}

这是首先显示的视图的布局(activity_main_view.xml 又名我的“根布局”):

<LinearLayout 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"

    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"

    android:orientation="vertical"

    android:background="@color/white"
    android:id="@+id/layout_root">

    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <Button android:id="@+id/addPlayerButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Add Player" />

        <Button android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/buttonLabel" />
    </LinearLayout>


    <ListView android:id="@+id/playerListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:cacheColorHint="@color/white"
        android:entries="@array/testStringArray" >
    </ListView>

</LinearLayout>

这是我的片段类:

public class AddNamePane extends Fragment {
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
    }

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        System.out.println("AddNamePane.onCreateView()");

        View view = inflater.inflate(R.layout.add_player_pane_layout, container, false);

        return view;
    }

    // a few other methods here, onAttach(), onStop(), onPause(), etc
    // all are empty of logic with just a println to see if they are being called correctly (in which they are)
}

这是“AddNamePane”片段的布局:

<?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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"

    android:orientation="vertical" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" 
        android:text="test name here"
        android:hint="Name here" >
        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

</LinearLayout>

我对使用片段还很陌生,不太确定我的问题是在代码中还是与布局有关。我的目标是将“AddNamePane”添加到“根布局”中,暂时替换主视图。我所做的尝试是为我的根布局提供一个 id 并在 FragmentTransaction 中使用它。如果重要的话,我使用的 api 级别是 8 (Android 2.2),因此使用 android.support.v4.app 包中的东西。


您正在尝试以编程方式替换LinearLayout,同时也期望它有硬编码的孩子。这行不通。你应该使用FrameLayout为您FragmentTransaction那也是你的孩子layout_root.

如果您使用实际的 xml 更新您的帖子,我可以准确地向您展示如何执行此操作。

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

片段未显示 的相关文章

随机推荐

  • 从 pandas 数据框中删除具有空值的行

    我正在尝试从数据框中删除一行 其中其中一列的值为空 我能找到的大部分帮助都与删除 NaN 值有关 到目前为止 这对我不起作用 我在这里创建了数据框 successfully crated data frame df1 ut get data
  • Opencv 图像拼接或全景

    我正在 OpenCV 全景 中进行图像拼接 但有一个问题 我无法使用 OpenCV 中的 Stitching 类 因此我必须仅使用特征点和单应性来创建它 OrbFeatureDetector detector minHessian std
  • querySelectorAll 是否支持 id 中的句点(.) 字符?

    querySelectorAll 是否支持 id 中的句点 字符 我的意思是如果我附加一个如下所示的元素 var div document createElement div div id my divid document body ap
  • Java 8 findFirst().isPresent() 比 count() > 0 更高效吗?

    鉴于我有一个流Stream
  • 如何在 CAFFE 的新网络中重复使用同一网络两次

    我有一个预训练的网络 我们称之为N 我想在新网络中使用两次 有人知道如何复制吗 然后我想为每个副本分配不同的学习率 例如 N1是第一个副本N N2是第二个副本N 新网络可能如下所示 N1 gt joint ip N2 gt layer 我知
  • 如何使用 vanilla JS 复制 useState

    Vanilla JS 中的代码的实现是什么 它允许我们像 React 中的 useState 那样声明和更新状态 const x setX useState 12 setX 14 console log x 14 这道题严格来说是get b
  • Android 1.5 多点触控

    有谁知道是否可以在 Android 1 5 设备上使用多点触控 我有一台 HTC Hero 它仍然运行 1 5 HTC 在推出 2 1 ROM 方面有点慢 Android MotionEvent 文档显示了常量 ACTION POINTER
  • android TextView:动态设置背景颜色不起作用

    以编程方式设置 Android 的背景颜色TextView似乎不起作用 我是不是漏掉了一些东西 TextView et new TextView activity et setText 350 et setBackgroundColor R
  • 使用 union 插入表变量

    我有一个表变量 我想插入联合查询 联合查询运行良好 但我似乎无法使插入工作 语法错误 INSERT INTO table a b c d VALUES SELECT a b c d FROM table1 UNION SELECT a b
  • C 中的“with”宏

    我一直在寻找一个类似于 with 结构的宏 用法应该是这样的 with lock x unlock x 它可能对其他一些目的有用 我想出了这个宏 define with onenter onexit v for int with uniq
  • Prometheus 来源的时间序列:如何将空值设置为零?

    使用 Docker Grafana 8 1 5 使用时间序列图 我正在绘制Prometheus Counter来源 有一个label as a time series 按标签 并且需要将所有空 缺失值填充为零 这是应用于的查询Prometh
  • 这个采用类型对象的函数如何在 TS 中键入?

    我有一个接受键对象的函数 每个值都有一个类型 这样为每一个其中一个字段的类型决定了另一个字段的类型 代码 We have this Alpha type and echo function type NoInfer
  • 查找数据框中所有站点共有的日期[重复]

    这个问题在这里已经有答案了 我正在处理一个大型数据集 我想找到所有网站通用的日期 site lt c 1 1 1 2 2 2 2 3 3 4 4 4 date lt c 4th Nov 5th Nov 6th Nov 5th Nov 6th
  • jQuery UI 自动完成 - 如何获取用户输入的值

    免责声明 我已经浏览了相关问题 但找不到该特定问题的解决方案 场景是这样的 根据用户是否从下拉列表中选择了建议或者是否没有匹配项 我想执行不同的 jQuery ajax 操作 我该怎么做呢 我卡住的地方是如何捕获当前在自动完成输入文本框中的
  • 根据 ObjectId 聚合和减少嵌套数组

    我有一个Event文档结构如下 我正在尝试查询employeeResponses用于收集单个员工的所有响应 可能存在也可能不存在 的数组 eventDate 2019 10 08T03 30 15 000 00 00 employeeRes
  • 使用 HTML5 doctype 时忽略 CSS 文件

    我有一个 HTML 页面 当调整浏览器窗口大小时 它使用 CSS 和 JavaScript 将页面内容置于浏览器中间 当我使用标准 HTML5 Doctype 声明时 所有浏览器完全忽略我的 CSS 文件 我不知道为什么 当我删除 HTML
  • 创建 React 应用程序 - 如何将 pdf.worker.js 文件从 pdfjs-dist/build 复制到项目的输出文件夹?

    由于我无法在要使用该应用程序的网络中使用浏览器的 pdf 查看器 因此我正在测试反应 pdf https www npmjs com package react pdf用于使用 React 加载 PDF 的包 我制作了一个组件 用于发送从后
  • 如何在 SQL Server 中查找运行跟踪?

    有没有一种简单的方法来确定已设置的痕迹sp trace create在 SQL Server 2000 上 SQL Server 2005 2008 2012 或 2014 怎么样 SQL Server 2005 向前 SELECT FRO
  • 我可以在 Composer 中存在循环依赖吗?

    我正在编写一个包 A 它是其他一些包 B 所需要的 而我现在还没有发布该包 B 在某些时候 A 将被更改为使用自身 B 很可能它们应该在同一个包中 但我更喜欢将这两件事分开 只是为了干净起见 更重要的是 因为 B 只是对 A 的开发依赖 p
  • 片段未显示

    我遇到一个问题 我可以创建一个片段 它的视图似乎已创建 但没有显示 片段本身已创建 内部的任何代码都可以正常运行 但它只是在某处不可见 后退按钮也可以很好地与它交互 它 关闭 它 它只是没有实际显示在屏幕上 仅显示主布局 来自我的 Frag