Наконец нашел,
Этот вопрос очень беспокоил меня, поскольку нигде не сообщалось о решении, и ответ кроется в самом поведении.
Минимальное смещение - это максимальное значение, до которого должен перемещаться нижний лист, и мы устанавливаем нижнюю границу значения на желаемую высоту, до которой мы хотим, чтобы нижний лист перемещался. Вы можете предоставить функцию для установки значения или сделать это напрямую в нашем поведении.
Чтобы динамически установить максимальную развернутую высоту для нижнего листа, нам нужно увеличить минимальное значение смещения с 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);
}
}
person
saurabh dhillon
schedule
28.03.2018