问题标签 [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 回答
2355 浏览

android - 为什么软键盘不会在带有 WebView 的片段中显示

我正在使用兼容性包,并且我有一个在 onCreateViewFragment中返回的人。WebView问题是如果在 onCreate 期间没有添加片段,Activity那么当在软键盘内部单击文本框时,WebView不会显示。如果在添加自定义 Web 片段后旋转设备,重新创建活动,则在单击文本字段时会显示软键盘。

只是要清楚这是两种不同的情况

在第一种情况下,在 Activity onCreate 方法期间添加片段时,片段中包含的 WebView 会在按下文本字段时正常工作。但是,在第二个示例中,单击 web 视图中的文本字段时没有任何反应,除非您在显示 web 视图后旋转设备。有人可以提供一个解决方案吗,如果我必须为我的片段创建一个新的活动才能正常工作,它首先会击败片段的目的。

0 投票
1 回答
1540 浏览

android - 日志片段的问题

我无法运行片段示例。这是我的代码和我的日志。

MainActivity.java

公共类 MainActivity 扩展 Activity {

这是我的 XML 文件

这是日志。

onCreateView: id=0x7f050002 fname=com.example.android.apis.app.FragmentLayout$TitlesFragment existing=null 关闭 VM threadid=1: 线程退出未捕获异常 (group=0x40014760)

0 投票
1 回答
2651 浏览

android - Fragments 是如何影响 Activity “用户可以做的单一、专注的事情”原则的?

正如 Android 文档所述:“活动是用户可以做的单一的、专注的事情。”

然而,使用 Fragments,我们将能够在Reto Meier 建议的同一个 Activity 中做许多“事情” 。他的建议是用同一 Activity 中的内容片段替换选择片段(“在我们的代码中,这会产生两难”一节)。

可以说我的应用程序“有点”复杂,有很多活动,有一个复杂的导航树,并且在设计时考虑了“用户可以做的单一、集中的事情”原则。

可以说现在我必须使其适应片段和大屏幕......而且我不想创建第二个应用程序,在一个应用程序中也没有两个完全不同的逻辑(一个用于手机,另一个用于表格)。

我应该有一个 Activity 来管理所有应用程序片段和片段事务吗?就像上面的 Retro Meier 建议一样。这是推荐的路径吗?从而打破活动的“用户可以做的单一、专注的事情”原则?

还是我错过了什么?我希望 ;)

顺便说一句,我认为 Fragments 看起来很棒,但从我目前所见,只有当您从头开始创建应用程序时。因为让应用程序与手机和平板电脑兼容看起来有点乏味。希望是错的:)


Dianne Hackborn 已经回答(感谢链接 mgv):

您可以将整个应用程序放在一个活动中,在该活动中随着片段结构的状态变化而更改

因此,Activity 成为一种容器,您可以在其中插入 Fragment。我喜欢这种方法,但是......在我的应用程序中,有大约 30 种不同的操作可用,每个操作都需要执行大约 2 到 4 个屏幕步骤(表单和选择列表),它们都不同,并且还有导航限制。它适用于活动,每个活动都处理一个屏幕/步骤行为。

因此,为了移植到 Fragments,我应该将每个屏幕逻辑移动到 Fragments,并将活动用作每个操作的容器。因此,让活动作为管理每个操作的片段之间导航的活动,对吗?看起来适应长时间的应用程序会很痛苦。:(

当前的 Activity 定义应该会有所改变。:)

0 投票
1 回答
1999 浏览

android - 片段:以编程方式为要填充的 xml 创建视图

有没有办法创建一个新的布局,然后你可以让你的 XML 膨胀?

我试图在片段中使用这段代码,这里是我想要创建新布局的地方。我想给它值WIDHT的宽度,然后让我的 xml 填充它。

0 投票
0 回答
399 浏览

android - 如何提高 NewsDetailFragment 的性能?

我目前正在使用片段兼容性 API 开发一个 android rss-reader 应用程序(api 级别 8),因为我想为平板电脑的应用程序提供面向未来的证明。

我现在的问题是,我得到了一个相当复杂的仪表板,其中包含动态条目和大量图像作为图标。基本上我说的是一个新闻阅读器,它在仪表板上带有预告图像作为图标。

好吧,现在……用户应该能够按下这些预告图像之一并获得详细的新闻视图(使用屏幕上当前视图顶部的片段)。到目前为止,这工作得很好。

我现在的问题是,我在这个中显示一个 webview NewsDetailFragment......而且它的性能真的很糟糕。在这个 web 视图中滚动就像幻灯片一样。

有什么建议么?

0 投票
7 回答
106563 浏览

android - 如何更新 ActionBar 中显示的菜单项?

我有一个有 2 个片段的活动。两者都是 ListFragments 并且都将 MenuItems 贡献给菜单。我有一个 MenuItem,我设置了属性 android:showAsAction 让它显示为 ActionBar 上的一个按钮。哪个工作正常。

现在 MenuItem 是状态相关的。这是一个暂停/恢复菜单选项,用于暂停和恢复队列。我的问题是我不知道在创建片段时如何设置它的初始雕像。

它的状态取决于队列是否暂停。所以我有一个 AsyncTask 获取队列并根据队列的状态设置一个布尔值(暂停)。我正在调用 onPrepareOptionsMenu 以根据队列的最后一个已知状态设置暂停菜单项的文本,如果我将 MenuItem 留在实际菜单中,这将非常有用。您点击菜单图标并触发 onPrepareOptionsMenu 并在显示之前更新菜单。

问题是,如果我将相同的 MenuItem 放在 ActionBar (showAsAction) 上,如何强制它更新而无需调用 onPrepareOptionsMenu?我需要能够做到这一点,因为在第一次启动应用程序时,我发送了一个获取队列的请求,但是在设置和显示 ActionBar 后任务返回。我在我的片段中创建了一个处理程序,每次我获得队列更新时都会调用它,但是从那里,我如何更新 ActionBar 上的 MenuItem 的文本?除了 onPrepareOptionMenu 之外,我似乎找不到一种方法来获取当前设置的菜单来操作它。

罗布·W。

0 投票
2 回答
1395 浏览

android - 如何处理同时只有 2 个活动的 3 窗格显示(à la Gmail)

我正在编写一个看起来像 gmail 的应用程序。事实上,我想在屏幕上激活 2 个窗格,就像在 Honeycomb gmail 应用程序中一样。

我的主要布局是:

SubscriptionsListFragment 在加载时会用另一个片段填充框架fragment_middle_content布局。

当我在第二个片段中做某事时,我想:

  • 隐藏fragment_left_list
  • 放在fragment_middle_content左边
  • 显示fragment_right_content第三个片段。

但是,我不知道该怎么做。与上面的 XML 布局一样,您可以看到第 3 帧布局是隐藏的(可见性 == 消失了)。所以当我在第二个片段中做某事时,我有:

这工作一次。当我推回时,回栈恢复片段事务但不隐藏第三个片段。

我知道我没有正确的方法,但我还不习惯 3.0 编程 API。

0 投票
7 回答
142853 浏览

android - 离开深度嵌套的堆栈时,这是清理 Fragment 后堆栈的正确方法吗?

我正在使用 Android 兼容性库来实现片段并扩展了布局示例,以便片段包含一个触发另一个片段的按钮。

在左侧的选择窗格中,我有 5 个可选项目 - A B C D E

FragmentTransaction:replace每个都在详细信息窗格中加载一个片段(通过) -a b c d e

现在我已经扩展了片段e以包含一个按钮,该按钮e1也可以在详细信息窗格中加载另一个片段。我在 fragmente的 onClick 方法上这样做了,如下所示:

如果我做出以下选择:

然后片段e位于详细信息窗格中。这很好,我想要什么。但是,如果我此时back按下按钮,它什么也不做。我必须单击它两次,因为e1它仍在堆栈上。此外,在单击后,我在 onCreateView 中得到了一个空指针异常:

为了“解决”这个问题,我在A B C D E选择时添加了以下内容:

只是想知道这是否是正确的解决方案,或者我是否应该做一些不同的事情?

0 投票
3 回答
2458 浏览

android - 使用片段重现 Honeycomb GMail UI

我正在尝试使用片段重现 Honeycomb GMail UI,但不能。这就是我想要的

初始状态:

选择文件夹后:

其中 Accounts、Folders 和 Items 是片段。(显然后退按钮应该进入初始状态)

我尝试了以下布局:

不幸的是,这不起作用,因为我无法将我的文件夹片段从右窗格移动到左窗格(片段只能添加一次)。我可以改为创建新文件夹,但这非常浪费资源,需要仔细的状态管理(尤其是在按下后退按钮时)并且看起来不像我想要的那样。

我尝试使用 3 个 FrameLayout(左、中、右,权重为 1、1.6、2.56),但是当片段未显示时,我无法使 FrameLayout 折叠。非常感谢任何帮助

0 投票
1 回答
222 浏览

android - 我们可以使用片段来使用同时运行的单个活动中的活动数量吗

是否可以将片段用于同时运行的单个活动中的活动数量。我想知道片段是否与活动相同。如果我将使用片段,它可以满足我的目的吗?