我正面临着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。
答案 0 :(得分:0)
试试这个
if (behavior.getState()== BottomSheetBehavior.STATE_HIDDEN) {
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
答案 1 :(得分:0)
在onCreate方法中:
BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(bottomsheetlayout); bottomSheetBehavior.setPeekHeight(像素);