San*_*dak 6 android android-layout android-fragments material-design bottom-sheet
我正在使用BottomSheetDialogFragment并且我需要知道状态何时改变。
例如有以下状态BottomSheetBehavior
PEEK_HEIGHT_AUTO - Peek at the 16:9 ratio keyline of its parent.
STATE_COLLAPSED - The bottom sheet is collapsed.
STATE_DRAGGING - The bottom sheet is dragging.
STATE_EXPANDED - The bottom sheet is expanded.
STATE_HIDDEN - The bottom sheet is hidden.
STATE_SETTLING - The bottom sheet is settling.
Run Code Online (Sandbox Code Playgroud)
我想根据当前状态更改一些视图 - 例如,当将BottomSheetDialogFragment展开全屏时,我想在右上角显示十字图标以关闭它等。
我怎样才能听到此类事件?
迟到了,但可能是你问题的答案。您必须使用 BottomSheetBehavior 回调。
bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(View bottomSheet, int newState) {
switch (newState) {
case BottomSheetBehavior.STATE_COLLAPSED:
Log.d("Bottom Sheet Behavior", "STATE_COLLAPSED");
break;
case BottomSheetBehavior.STATE_DRAGGING:
Log.d("Bottom Sheet Behavior", "STATE_DRAGGING");
break;
case BottomSheetBehavior.STATE_EXPANDED:
Log.d("Bottom Sheet Behavior", "STATE_EXPANDED");
break;
case BottomSheetBehavior.STATE_HIDDEN:
Log.d("Bottom Sheet Behavior", "STATE_HIDDEN");
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
break;
case BottomSheetBehavior.STATE_SETTLING:
Log.d("Bottom Sheet Behavior", "STATE_SETTLING");
break;
}
}
Run Code Online (Sandbox Code Playgroud)