【问题标题】:Force BottomSheet to hide when user is dragging当用户拖动时强制 BottomSheet 隐藏
【发布时间】:2016-08-02 11:05:16
【问题描述】:

我试图强制我的BottomSheet 隐藏,即使用户拖动也是如此。

为了讨论,假设我的应用只包含两个视图:
- Button
- BottomSheet

在开头BottomSheet 被扩展。当我单击按钮时,我希望 BottomSheet 完全隐藏,无论用户是否拖动。我以为我只需要将BottomSheet 的状态设置为折叠或隐藏,但这仅在用户不拖动BottomSheet 时才有效。如果他在拖,那么什么都不会发生,BottomSheet 仍然可见。

这是我尝试过的:
- 将peekHeight 设置为 0
- 将状态设置为hidden
- 将状态设置为collapsed

但这些都不起作用。

有什么想法吗?

【问题讨论】:

  • 用户在拖动视图时如何点击按钮?
  • 按钮不在bottomSheet内所以可以点击
  • 其实你的问题让我想到了在拖动bottomSheet时禁用按钮
  • 在拖动时不要试图改变BottomSheetBehavior的状态。根据情况改变你的逻辑。
  • @LvN 在谷歌地图应用中,当用户拖动bottomSheet并同时点击返回按钮时,bottomSheet会塌陷,所以必须有办法

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


【解决方案1】:
 @Override
public void onBackPressed() {
    if (mBottomSheetBehavior.isHideable()) {
        super.onBackPressed();
    }else {
        mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
    }
}

【讨论】:

    猜你喜欢
    • 2020-05-11
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多