【发布时间】:2023-02-09 08:49:47
【问题描述】:
我正在尝试为我的 bottomsheet 设置一个 peek 高度,我在下面使用这个方法,当 BottomModalLayout 从活动中调用时它工作正常但当从片段中调用时它不工作 这是我的 bottomModalLayout 代码
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState){
super.onViewCreated(view, savedInstanceState);
System.out.println("Details: "+view.getParent());
//CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) ((View) view.getParent()).getLayoutParams();
BottomSheetBehavior bottomSheetBehavior=BottomSheetBehavior.from((View) view.getParent());
//BottomSheetBehavior bottomSheetBehavior=params.getBehavior();
bottomSheetBehavior.setPeekHeight(1877);
bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_DRAGGING) {
bottomSheetBehavior.setPeekHeight(1877);
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
});
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
}
这是从片段中调用的
analysis.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
BottomModalLayout bottomSheet = new BottomModalLayout();
bottomSheet.setCancelable(false);
bottomSheet.show(getFragmentManager(),
"ModalBottomSheet");
}
});
请帮忙!!! 并提前致谢
【问题讨论】:
-
你能试试吗onStart()回调代替