【问题标题】:How to handle issues of the new bottom sheet of the support/design library?如何处理支持/设计库新底页的问题?
【发布时间】:2016-06-28 13:08:12
【问题描述】:

背景

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

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

问题

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

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

  1. 底部工作表立即显示,并且高度错误。
  2. 它必须立即配置其高度,不支持“wrap_content”,并且在展开时也不能有高度“match_parent”,因为它将位于其他视图之上,包括工具栏。
  3. 当它被隐藏时,它仍然会响应触摸事件并再次显示。
  4. 当我设置它的初始状态时它会崩溃。

所有这一切都没有尝试处理我想要的,这是我之前做过的三个阶段。

我尝试过的

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

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

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

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

问题

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

【问题讨论】:

    标签: android android-support-library android-design-library bottom-sheet


    【解决方案1】:

    更新 链接到full answer,您可以在其中找到有关如何获得 Google 地图等完整行为的所有说明。


    帮您做您想要的

    我想要的,也就是我之前做过的三个阶段

    使用支持库 23.x+,您可以通过以下步骤修改默认 BottomSheetBehavior 添加更多统计信息:

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

    4. 添加新状态

      public static final int STATE_ANCHOR_POINT = X;

    5. 修改下一个方法:onLayoutChildonStopNestedScrollBottomSheetBehavior<V> from(V view)setState(可选)

    所以现在你有了这些状态:
    状态隐藏
    状态_折叠
    STATE_DRAGGING
    STATE_ANCHOR_POINT
    STATE_EXPANDED。

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

    XML(没有像谷歌地图这样的视差图像)看起来像:

    <CoordinatorLayout>
    
        <FrameLayout/>
    
        <AppBarLayout>
            <CollapsingToolbarLayout>
                <Toolbar/>
            </CollapsingToolbarLayout >
        </AppBarLayout >
    
        <NestedScrollView>
            <LinearLayout/>
        </NestedScrollView>
    
    </CoordinatorLayout >
    



    我将添加一个link to the example project,您可以在其中找到您要查找的内容

    它的外观如下:
    []

    【讨论】:

      【解决方案2】:

      您可以使用此library。据我所见,这个库没有问题。

      【讨论】:

      • 根据截图,库的底部工作表在“对话框”类别中。他们也有非基于对话框的底页吗?如果没有,它不适用于我的情况,因为我仍然希望支持在底部工作表之外进行触摸。
      • 是的,这个库的底部工作表属于对话框类别。它们不适用于您的情况。
      猜你喜欢
      • 2016-06-07
      • 2015-09-22
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      相关资源
      最近更新 更多