问题标签 [android-fragments]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
14964 浏览

android - Android Fragment(在 2.3.3 上带有兼容包)创建“指定的子级已经有父级错误”

我正在使用兼容性包在我的 Android 应用程序中使用片段。我已经在运行 2.3.3 和 Google API 2.2 模拟器的 Nexus One 上测试了该应用程序。

通过布局 XML 添加片段时效果很好(使用片段标签)。

将片段动态添加到 FrameLayout 时,它没有成功地将片段添加到容器中,并引发以下错误。

完整的堆栈跟踪如下。

这是我正在使用的布局 - FrameLayout 是我要插入的容器。

我用来实际插入片段的代码如下。

有谁知道出了什么问题?

0 投票
2 回答
1961 浏览

android - ListFragment 显示数据时的延迟

首先感谢所有让我的 android 开发冒险变得如此轻松的用户。但是,我遇到了一种我找不到解决方案的情况,所以这里是:

我有一个包含各种片段的活动,这些片段旨在相互交互。这些包括:

  1. 包含 GridView 的 Fragment 由 Sqlite db 中的一个表中的 SimpleCursorAdapter 填充

    /li>
  2. 由另一个表中的另一个 SimpleCursorAdapter 填充的 ListFragment // 列表功能

    /li>
  3. 当用户从 GridView 中选择某些内容时,Activity 会将该项插入到 ListView 的表中,然后重新初始化它。

    /li>

现在解决问题:当我查看日志并记录每个步骤时。整个过程不超过 50-70 毫秒,但从我单击 Grid 到更新 ListView 的时间,我可以计算 2-3 秒。似乎问题在于 ListFragmentsetListAdapter()以及刷新视图所需的时间。

我已经尝试了各种方法来解决这个问题,例如 1. 使用接口来监听选择或直接从 GridView 片段调用它 2. 使用其中一个newadapter.changecursor(c)或3 调用 ListFragment 中的辅助函数newadapter.getCursor().requery()3. 这个的其他变体......

但它似乎总是需要任何帮助。

0 投票
1 回答
2867 浏览

android - 交换/添加 XML 片段时出错

几天来,我一直在为 Android 3.0 SDK 的 Fragments 概念苦苦挣扎,并想试试 StackOverflow ......

我有一个简单的(概念证明)应用程序:

这是我的主要布局:

我直接在 XML 中显示一个片段(静态片段),这很好用。

使用框架布局,我想在创建时添加一个 XML 片段 (fragment1)。

这是片段1:

这是我的主要活动:

这会导致启动时强制关闭。

这是日志猫:

有谁知道我做错了什么,因为我直接从 developer.android.com 获取了代码

谢谢

0 投票
3 回答
13393 浏览

android - ExpandableListFragment 与 LoaderManager 兼容包

我想让我的 ExpandableListActivity 与 Honeycomb 兼容。我想知道为什么兼容性包没有 ExpandableListFragment。

有没有办法让 ExpandableListView 与普通的 Fragment 类一起工作?如何使用 LoaderManager 加载游标?

0 投票
1 回答
2144 浏览

android - Android 全屏视频 - 片段

我有一个由列表视图和片段组成的布局。Listview 列出所有频道,片段用于播放视频频道。到目前为止,一切都很好。所有这些都有效。但问题是我希望视频是全屏的,而不是只占用片段并且仍然在左侧显示列表视图。我不是在寻找代码,但我想要任何关于如何去做的线索。

一种方法是获取当前活动的视图(列表视图和片段)并将其与新片段交换并在其上放置一个表面视图?只是一个猜测,非常感谢任何见解或线索。我会在明天早上之前尝试我的想法,直到那时如果我幸运的话,我会在这里找到一些线索;-)

哦,最后但并非最不重要的是,我使用的是surfaceview而不是videoview

0 投票
1 回答
1108 浏览

android - 片段动画问题

在 Honeycomb 示例库应用程序中,有一个使用两个片段设置的布局:一个在屏幕左侧显示标题,一个在右侧显示所选内容。标题片段可以用动画隐藏。

在隐藏动画期间,应用程序要求框架重新计算每一帧的布局。这样,内容片段可以占据标题片段离开屏幕时留下的空白空间。这会产生很好的动态效果,但我认为效率非常低。

我有相当复杂的布局,我不想让系统在每一帧上重新布局。但我想要一个像示例中那样的平滑过渡动画。有没有其他解决方案可以解决这个问题?

Ps:为了清楚起见,我不是在问如何做基本的片段交易动画。我知道这些,而且 AFAIK,这些动画无法产生在该示例画廊应用程序中发现的行为(另一个示例是 Honeycomb Gmail 应用程序,它具有我想要实现的类似转换)。

0 投票
3 回答
3324 浏览

android - ListView 行标记 ala GMail

我有兴趣创建一个 ListView,其中每一行都标记为在 GMail 中为 3.0+ 完成的方式。这创建了左右 ListFragment 的良好分离。

其他示例还包括 2.3.4 上的 Google 日历,例如颜色标记位于 ListView 左侧。

GMail 列表视图

查看两个列表之间的灰色垂直分隔线。一个人如何实现这样的目标?一个奖励也是交替宽度,但我想这只是一个较小的布局变化。

我知道我可能会做一些事情,比如在其中插入一个 ImageView,然后用我想要的颜色填充它,但在我看来,这是一个丑陋的 hack。

另一个问题是,如果有一种通用的方式来组合两个 ListView 片段,就像 GMail 或 Mail 应用程序那样。

跨两个片段的 GMail ListView

0 投票
2 回答
6142 浏览

android - 在 Android 3.0+ 上使用 `onPrepareOptionsMenu()`

我很好奇在面向 API 11 或更高版本时如何(如果有的话) onPrepareOptionsMenu(Menu)(以及扩展, )在 Android 3.0+ 上使用。onPreparePanel(int, View, Menu)

我的想法如下:

一个Activity'sActionBar接收它的内容onCreateOptionsMenu(Menu),您可以在其中扩充 XML 菜单资源、直接添加项目或两者的某种组合。活动的任何片段也将收到此调用并可以选择执行相同操作。

要更新 ActionBar 上的项目,您可以保留Menu实例或调用invalidateOptionsMenu(),然后onCreateOptionsMenu(Menu)再次调用。

因此,是否onPrepareOptionsMenu(Menu)仍然只支持不针对 API 11 或更新版本的遗留应用程序?

呼叫getActionBar().hide()getActionBar().show()触发呼叫onPrepareOptionsMenu(Menu)可能吗?

添加或删除片段会以某种方式触发吗?

0 投票
2 回答
2857 浏览

android - 用于 LVL 和 Fragment 兼容性支持的 Proguard Android 应用程序

我正在尝试对我的应用程序使用 Proguard,该应用程序最终将包含 LVL 和应用内计费。我遇到的问题是 Proguard 在启动时不断使我的应用程序崩溃,并且很难找出失败的原因。

我正在使用 Android V4 支持兼容性库,它似乎正在吹走该库以及其他一些东西。

有没有人有一个 proguard.cfg 可以与初学者的 v4 兼容库的基本版本一起使用?

目前我正在使用不起作用的股票 proguard.cfg。

0 投票
19 回答
268856 浏览

android - 如何在 Fragments 中使用 XML onClick 处理按钮点击

Pre-Honeycomb (Android 3),每个 Activity 都注册为通过onClick布局 XML 中的标签处理按钮点击:

在该方法中,您可以使用view.getId()switch 语句来执行按钮逻辑。

随着 Honeycomb 的引入,我将这些活动分解为可以在许多不同活动中重复使用的片段。按钮的大部分行为是独立于活动的,我希望代码驻留在片段文件中,而不OnClickListener使用为每个按钮注册的旧(1.6 之前)方法。

问题是,当我的布局膨胀时,它仍然是接收按钮点击的托管活动,而不是单个片段。有没有好的方法

  • 注册片段以接收按钮点击?
  • 将 Activity 中的点击事件传递给它们所属的 Fragment?