How to set maximum expanded height in android support design bottom sheet?
现在的问题是一个扩展到上述的问题,我想设置的片材的最大展开高度而是动态地根据屏幕尺寸。
我曾尝试新的布局PARAMS设置视图实现bottomsheet行为,但它确实没有什么好。
终于找到了,
这个问题困扰了我很多,没有解决任何地方的报道,而答案就在于行为本身。
最小的偏移量是最大值高达其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);
}
}
最简单的解决方案是设置底部片材这样的maxHeight属性。
DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
bottomSheet.setMaxHeight((int) (displayMetrics.heightPixels * 0.65));