gpt4 book ai didi

android - 漂浮 fragment

转载 作者:行者123 更新时间:2023-11-29 02:03:43 25 4
gpt4 key购买 nike

我正在尝试通过膨胀并使用 FragmentTransaction 将其添加到 Activity 来动态创建一个 float Fragment。

当我将它添加到容器(添加到我在容器中为它创建的 FrameLayout)时,它下面的所有部分都被下推并且所有 View 都发生变化(我希望 View 在有或没有的情况下看起来都一样 fragment )。

我查看了 DialogFragment 的实现,它漂浮在上方并且不改变 View ,我看到它使用了:FragmentTransaction.add(int containerViewId...) 方法,其中 0 作为 containerViewId。在谷歌文档中,它只是写道:“如果为 0,它将不会被放置在容器中”。当我将 0 放入我的 containerViewId 并从 View 中删除 FrameLayout 时, fragment 没有出现。

最佳答案

我认为您面临的问题是您将 float fragment 添加到 FrameLayout 中,该布局是现有布局的子级,正如您已经看到的那样,它将修改当前布局为新 fragment 腾出空间。例如,如果您当前的布局是这样的(这只是一个示例):

<LinearLayout>
<FrameLayout android:id="@+id/here_add_floating_fragment"/>
<the rest of the layout file with the content that should hold its position />
</LinearLayout>

如果将 float fragment 添加到 FrameLayout 中,就像在上面的布局中一样,那么其余的 View 确实会移动以腾出空间。

为防止这种情况,您必须修改您的布局,以便 FrameLayout 将保持您当前的布局,如下所示:

<FrameLayout android:id="@+id/here_add_floating_fragment"> 
<LinearLayout>
<the rest of the layout file with the content that should hold its position />
</LinearLayout>
</FrameLayout>

现在,当您添加新 fragment 时,当前的 Views 将保留在原位, fragment 将显示在上方,因为 FrameLayout 堆叠其子级。

关于android - 漂浮 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11207879/

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