问题标签 [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 投票
9 回答
81492 浏览

android - 如何更改片段内的视图?

如您所料,我有一个片段可以在 onCreateView 中创建其视图。但是我想定期更改视图。

我的用例是片段显示来自 Web 服务的一些数据。当用户从列表(另一个片段)中选择一个选项时,该片段应该切换到进度条,然后一旦加载,切换回数据视图。

我可以制作两个片段 - 加载片段和显示片段,但似乎因为这是一个封装事件,我宁愿在一个片段内完成所有操作。

基本上我要问的是,片段内 setContentView 的等价物是什么。

0 投票
4 回答
10600 浏览

android - Android:我的片段过渡动画有什么问题?

我只需要简单的滑入和滑出片段过渡动画,下面是我的代码:slide_in_left.xml:

slide_out_right.xml:

我使用的代码:

结果看起来很奇怪,当transition开始时,当前的fragment没有动画就消失了,进入的fragment(从左边)就像一张滚动的纸一样。我的动画 xml 代码有什么问题?

谢谢!

0 投票
1 回答
1854 浏览

android - 将 100 个活动应用程序移植到 Fragments 而不死

我为一家银行开发了一个巨大的应用程序。此应用程序使用户能够通过电话执行大量操作(国内和国际转账、证券、股票市场价值、警报、存款、卡更改、卡激活、支票等)。

所有的应用程序都在运行 Android 原生代码,每个屏幕都是一个 Activity。

现在我们正在转向片段......我有办法根据这些教程这个这个......我什至优化了他们的过程。

但是,根据他们的建议,我将不得不创建大约 100 个新的 Fragment 类;切换我在每个屏幕活动上的代码并将其放入那些新的每个屏幕片段类中;更新约 100 个布局;最后更新屏幕触发新屏幕的方式(使用 FragmentManager 而不是 Intents)。

也许不是艰巨的任务,但乏味。

我的问题是,任何人都知道一种将 100 个活动应用程序移植到片段的快速方法,比上述教程中建议的方法更快吗?

谢谢

0 投票
2 回答
1514 浏览

android - ListFragment 总是使用 match_parent/fill_parent

有没有人在 ListFragment 上有一个解决方案,总是强迫自己使用 match_parent 而不是 wrap_content,我把它放在带有 wrap_content 的 LinearLayout 上,并使用了类似的东西

在 ListFragment 上,甚至在行 xml 上设置强制宽度,但它仍然使用 match_parent。此外,即使我在 xml 上使用片段或动态添加 listfragment,它似乎仍然会强制自己匹配父级。

任何帮助都是极好的。谢谢

0 投票
1 回答
1384 浏览

android - 此应用程序的最佳布局设计(带有屏幕转换的标签栏)?

我需要将 iOS 应用程序迁移到 android,而且我是 Android 新手,我不确定该应用程序的最佳布局设计是什么:

  1. 标签栏(上面有按钮)总是在屏幕底部
  2. 每个选项卡按钮对应一个屏幕,每个屏幕都有一个子屏幕层次结构

例如: 标签按钮:商店 屏幕显示:商店列表 单击商店:转换到带有地址、网站等的商店详细信息 在商店详细信息屏幕中单击地址:转换到地图

目前我有一个 TabActivity,每个选项卡按钮都与该按钮功能的 Activity 相关联,在每个 Activity 内部,我有一个包含片段的 ViewGroup,因此我可以用新片段替换当前片段以进行屏幕转换(我尝试创建新的 Activity但标签栏消失)。我不知道这是否是最好的设计方法,还是有更好的方法?

0 投票
1 回答
5693 浏览

android - DialogFragment 在使用 onCreateDialog 创建时不可见

(使用兼容性库)

我已经实现了一个带有扩展 DialogFragment 的对话框。我在 onCreateDialog 中使用 AlertDialog.Builder 创建对话框(不使用 onCreateView)。

在我的片段中,我调用对话框:

但是,当我来检查可见性时,一旦对话框清晰可见,使用

这返回错误。

下面是来自兼容性源的 Fragment::isVisible 代码。

调用返回 false 因为 mView 为空,因为视图未附加到窗口。

关于我应该如何调用对话框或为此创建它的任何想法,以便它附加到片段的根视图?或者我应该如何检查可见性?

在此先感谢,彼得。

0 投票
1 回答
6574 浏览

android - 片段、setRetainInstance(true) 和线程库

在这里,Dianne 说,保留对象的旧方法onRetainNonConfigurationInstance()现在已经过时了,因为您可以保留 Fragment 实例而不是配置更改。

在这里,在片段的 API Demos 中,它展示了如何在配置更改后使用这种方法来维护线程。

我看到在配置更改期间,当 Fragment 可能未附加到任何活动并且线程完成它的工作时,它能够调用wait()以便在未附加 Activity 时它不会尝试传递结果。我发现这非常有用,并且是缓解 Android 方向更改带来的更痛苦的问题之一的好方法。

但是,如果您使用的是线程库(例如,使用线程执行器的 API 库),而您无法访问wait()所述线程,我们如何利用这个新功能来发挥我们的优势?

我们如何确保在未附加活动时不会传递消息?

我一直在考虑一种方法来排队消息并在附加新活动时传递它们,但我想联系你们,看看你们是否已经提出了一些解决方案。

另外,请注意,我已经查看了 LoaderManager API,它似乎适用于显示 Activity 时需要加载的数据,但不适用于基于事件的某些东西,例如通过按钮登录等。

0 投票
2 回答
2938 浏览

android - 如何最好地将消息从一个 Fragment 传达给其父级(等效于 onActivityResult)

好的,我知道我可能想错了,但是...

A)我有活动 A 加载片段 F1,它加载片段 F2。F2 执行一个应该导致它关闭的操作,然后 F1 根据它的关闭方式执行某个操作。

B)现在因为我还支持单个窗格,非片段,版本 F1 也通过 startActivityForResult 调用间接加载 F2。这意味着当 F2 的包装器活动完成时,F1 会收到一个 onActivityResult 调用,并且 F1 可以做它需要做的事情。

但是,我正在努力寻找实现我想要的 (A) 的最佳方法。我让 F2 回调活动 A 以将其从堆栈中弹出。然后我是否应该考虑将消息传递给 F1 以完成它需要做的事情?或者(我想 F1 可能负责将 F2 从堆栈中弹出)。

我想知道的是,在通过父活动来回传递消息方面,我是否走在正确的轨道上,或者是否有更直接的方式让 F1 响应 F2 执行需要关闭它的操作,然后 F1 执行它需要做的。

提前致谢。彼得。

0 投票
2 回答
517 浏览

android - 在 Android 中保存和恢复整个片段堆栈

我有一个在活动中使用片段(通过 ACP)的 Android 应用程序。我有多种“模式”;在每种模式下,我都有一系列可能想要展示的片段,并且我正在正常管理后台堆栈。但是,在切换模式时,我希望能够保存和恢复整个堆栈,以便每个模式的状态都是持久的。

换句话说,如果用户处于模式1并打开片段A,B和C(按顺序),切换到模式2并打开片段D和E,然后切换回模式1,我希望他们看到片段C 并且在后堆栈上有 A 和 B。

有人知道达到这种效果的方法吗?

谢谢,亚伦

0 投票
4 回答
14278 浏览

android - 在活动之间保留片段状态

可以保留Fragment活动之间的吗?

假设我有 Activity A,其中 FragmentF_Left放在左侧,FragmentF_Right放在右侧。如果我想启动一个新的 Activity 并保留 Fragment F_Left......我该怎么做?

我可以F_Left在活动之间保留片段状态吗?

请注意,我想启动一个新的 Activity,因为 FragmentF_Left是我的应用程序菜单,而 FragmentF_Right完全改变了用户操作的上下文......而且我的应用程序有很多操作,所以每个操作都有一个 Activity 是有意义的。

我知道它可以保留Fragment在一个Activity中,但由于Fragment生命周期与容器密切相关,Activity我不知道这是否可以Fragment在活动之间保持状态。