gpt4 book ai didi

android - 在 Fragment 中添加内容之前必须调用 requestFeature()

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:25:02 25 4
gpt4 key购买 nike

android.util.AndroidRuntimeException: requestFeature() must be called before adding content

我在使用时遇到这个错误

getActivity().getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);

来自 fragment 。我只想在此 fragment 中更改操作栏样式。所以我不能在 MainActivity 中设置它。如何解决?

我看到了这个问题requestFeature() must be called before adding content它没有说如何从 fragment 中解决这个问题

最佳答案

我在使用 DialogFragment 时也遇到了这个错误,即使我根本没有调用 requestFeature()。

我从 DialogFragment 的 onActivitiyCreate() 调用 getDecorView() 作为我编写的一些跟踪代码的一部分,以帮助我了解 Windows 的创建方式和时间。这工作得很好,但在 fragment 的生命周期稍后会调用它的 onStart() 方法。调用 Dialog 的 show() 最终调用 AlertDialog 的 onCreate() 最后调用 PhoneWindow 的 requestFeature() 方法来请求 Window.FEATURE_NO_TITLE。

由于调用 getDecorView() “第一次‘锁定’了 setContentView(View, android.view.ViewGroup.LayoutParams) 中描述的各种窗口特性”,这违反了“requestFeature() 之前被调用”的要求在 Fragment 中添加内容”——微妙的是内容是通过我调用 getDecorView() 间接添加的。

解决方法是调用 peekDecorView() 而不是 getDecorView()。

关于android - 在 Fragment 中添加内容之前必须调用 requestFeature(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26052963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com