android BottomSheet没有扩展到最大高度

时间:2018-04-04 05:42:16

标签: android android-layout bottom-sheet

我正面临着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。

2 个答案:

答案 0 :(得分:0)

试试这个

   if (behavior.getState()== BottomSheetBehavior.STATE_HIDDEN) {
       behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
       }

答案 1 :(得分:0)

在onCreate方法中:

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