设置最大扩展高度bottomsheet动态

问题描述 投票:0回答:2

How to set maximum expanded height in android support design bottom sheet?

现在的问题是一个扩展到上述的问题,我想设置的片材的最大展开高度而是动态地根据屏幕尺寸。

我曾尝试新的布局PARAMS设置视图实现bottomsheet行为,但它确实没有什么好。

android bottom-sheet
2个回答
0
投票

终于找到了,

这个问题困扰了我很多,没有解决任何地方的报道,而答案就在于行为本身。

最小的偏移量是最大值高达其bottomsheet应该移动,我们的价值的下侧盖设置为高达我们希望bottomsheet将我们想要的高度。您可以公开一个函数来设置值,或在我们的行为做照片直接。

要动态地设置最大扩展高度bottomsheet我们需要增加从0最小偏移值在BottomSheetBehavior类我们的期望值,让我给的代码。

编码愉快!

         // The minimum offset value upto which your bottomsheet to move
         private int mMinOffset;

        /**
          * Called when the parent CoordinatorLayout is about the layout the given child view.
          */
        @Override
        public boolean onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection) {
               int dynamicHeight = Utils.dpToPx(parent.getContext(), **your_value_in_dp**);
               mMinOffset = Math.max(dynamicHeight, mParentHeight - child.getHeight());
               mMaxOffset = Math.max(mParentHeight - mPeekHeight, mMinOffset);
               mAnchorOffset = Math.min(mParentHeight - mAnchorHeight, mMaxOffset);

               if (mState == STATE_EXPANDED) {
                    ViewCompat.offsetTopAndBottom(child, mMinOffset);
                    anchorViews(mMinOffset);
               } 
        }

0
投票

最简单的解决方案是设置底部片材这样的maxHeight属性。

DisplayMetrics displayMetrics = new DisplayMetrics();
        activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
 bottomSheet.setMaxHeight((int) (displayMetrics.heightPixels * 0.65));
© www.soinside.com 2019 - 2024. All rights reserved.