android BottomSheet 未扩展到最大高度

Posted

技术标签:

【中文标题】android BottomSheet 未扩展到最大高度【英文标题】:android BottomSheet not expand to maximum height 【发布时间】:2018-09-13 13:52:27 【问题描述】:

我遇到了 BottomSheetBehaviour 的问题。BottomSheet 在开始时没有扩展到最大高度。但是,它可以滚动到最大高度。但我不想滚动,而是希望 BottomSheet 扩展到其最大高度。 我尝试使用

将 bottomSheet 的高度设置为整个屏幕
final float scale = getContext().getResources().getDisplayMetrics().density;
        int pixels = (int) (BOTTOM_HEIGHT_DP * scale + 0.5f);
        bottomSheet.getLayoutParams().height = pixels;

我也试过设置

((BottomSheetBehavior) behavior.setPeekheight(pixels);

我也尝试通过 BottomSheetBehaviour 回调来处理

  @Override
                public void onStateChanged(@NonNull View bottomSheet, int newState) 
                    if (newState == BottomSheetBehavior.STATE_HIDDEN) 
                        newState=BottomSheetBehavior.STATE_EXPANDED;
                    

                

调查结果....

STATE_EXPANDED:底部工作表的完全展开状态,其中整个底部工作表可见(如果其高度小于包含的 CoordinatorLayout)或整个 CoordinatorLayout 已填充。 我想这可能是原因(整个 CoordinatorLayout 都被填满了)。但我无法确定 CoordinatorLayout 是否已填充。 我没有在布局中定义 CoordinatorLayout。

【问题讨论】:

我也认为这可能是因为布局问题。但它可以滚动到最大高度。就是想不通为什么不一口气展开。 你能发布你的 layout.xml 吗? 请显示底部工作表的 xml 布局 @manishKumarSingh 你找到解决方案了吗? 【参考方案1】:

在 onCreate 方法中:

BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(bottomsheetlayout); bottomSheetBehavior.setPeekHeight(像素);

【讨论】:

没用。我认为 setPeekHeight 是关于设置折叠底页的高度。developer.android.com/reference/android/support/design/widget/…

以上是关于android BottomSheet 未扩展到最大高度的主要内容,如果未能解决你的问题,请参考以下文章

布局背景未根据 BottomSheet 布局中的可绘制背景进行裁剪

Android 原生BottomSheet 介绍及坑

如何在 Android Kotlin 中创建 BottomSheet

Android BottomSheet 覆盖了锚定 ImageView 的一半

圆角不适用于 Material Design Bottomsheet Android [重复]

Android两种方法使用BottomSheet