gpt4 book ai didi

android - 如何处理支持/设计库新 Bottom Sheet 的问题?

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

背景

我使用了 bottom-sheet 的修改版本库( here ,基于 this library ,也写了关于它 here ),以便在折叠(也称为“窥视”)状态和展开状态之间有一个很好的过渡。

图书馆有它的问题,但总的来说,我已经解决了所有问题。

问题

最近我们发现,在从所有广告网络屏幕返回到具有 Bottom Sheet 的屏幕后, Bottom Sheet 会进入一种奇怪的展开状态。

我决定是时候尝试支持库的新 Bottom Sheet (显示 here ),但我发现它有很多基本的相关问题:

  1. Bottom Sheet 立即显示,但高度错误。
  2. 它必须立即配置高度,不支持“wrap_content”,展开时也不能有“match_parent”高度,因为它将位于其他 View (包括工具栏)之上。
  3. 当它隐藏时,它仍然对触摸事件使用react并再次显示。
  4. 当我设置它的初始状态时它会崩溃。

所有这一切甚至都没有尝试处理我想要的,这是我之前完成的 3 个阶段。

我尝试过的

起初,我以为我只是没有很好地使用这个库,所以我尝试了 2 个我找到的示例:

我还尝试了一些我在 StackOverflow 上找到的代码,但似乎所有样本都差不多。

我注意到它们都有相同的问题,所以我已经报告了它们:

现在我尝试了各种方法来排查和修复问题,但我仍然没有这样做。

问题

有什么办法可以解决这些问题吗?使用支持库使用 Bottom Sheet 的正确代码应该是什么?

最佳答案

更新链接到 full answer在那里你可以找到关于如何获得像谷歌地图这样的完整行为的所有解释。


帮你做你想做的事

what I wanted, which is the 3-phases I've done before

使用支持库 23.x+,您可以修改默认值 BottomSheetBehavior通过以下步骤再添加一项统计数据:

  1. 创建一个 Java 类并从 CoordinatorLayout.Behavior<V> 扩展它
  2. 从默认值复制粘贴代码BottomSheetBehavior提交给你的新文件。
  3. 修改方法clampViewPositionVertical :

  4. 添加一个新状态

    public static final int STATE_ANCHOR_POINT = X;

  5. 修改下一个方法:onLayoutChild , onStopNestedScroll , BottomSheetBehavior<V> from(V view)setState (可选的)

现在你有了这些状态:
状态_隐藏
STATE_COLLAPSED
STATE_DRAGGING
STATE_ANCHOR_POINT
STATE_EXPANDED。

您可以使用 setBottomSheetCallback就像你原来做的一样BottomSheetBehavior

XML(没有像谷歌地图那样关于视差图像的任何内容)如下所示:

<CoordinatorLayout>

<FrameLayout/>

<AppBarLayout>
<CollapsingToolbarLayout>
<Toolbar/>
</CollapsingToolbarLayout >
</AppBarLayout >

<NestedScrollView>
<LinearLayout/>
</NestedScrollView>

</CoordinatorLayout >



我要添加 link to the example project在哪里可以找到您要找的东西

这是它的样子:
[ CustomBottomSheetBehavior ]

关于android - 如何处理支持/设计库新 Bottom Sheet 的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35971546/

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