Кажется, что BottomSheetDialogFragment закодирован с якорем, где, если ваш макет фрагмента превышает 360dp
по высоте onShow()
, диалоговое окно заглянет на 360dp
, и вам придется вручную перетаскивать лист вверх, чтобы показать весь ваш макет.
какой-нибудь способ обойти это поведение или любые другие рекомендации для модального нижнего диалогового окна, где я могу использовать фрагмент?
вы можете проверить поведение следующим образом
Activity.java
MyDialog myDialog = new MyDialog();
mtDialog.show(getChildFragmentManager(),"my_dialog_fragment");
MyDialog.java
public class MyDialog extends BottomSheetDialogFragment{
public View onCreate(@NonNull LayoutInflater inflater, @Nullable ViewGroup container,
@Nullable Bundle savedInstanceState){
return inflater.inflate(R.layout.dialog, container, false);
}
}
dialog.xml
<FrameLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="432dp"
android:backgroud="@color/blue"/>
это в значительной степени код. Я пытался использовать setStyle
и создать стиль BottomSheetDialog и все эти перестановки и нет. но при установке высоты на 360dp он полностью расширяется, но мне нужно больше площади.