Доступ к BottomSheetBehaviour из BottomSheetDialogFragment - PullRequest
0 голосов
/ 29 января 2019

Я хочу установить высоту просмотра фрагмента диалога нижнего листа, но не могу определить поведение нижнего листа во фрагменте. Кто-нибудь может мне помочь?

getDialog () возвращает значение null в методе oncreateview

public class ExampleFragment extends BottomSheetDialogFragment{

 @NonNull
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
 final View view = inflater.inflate(R.layout.bottom_itemlist, container, false);

        ButterKnife.bind(this, view);

 BottomSheetDialog d = (BottomSheetDialog) getDialog();
                FrameLayout bottomSheet = (FrameLayout) d.findViewById(android.support.design.R.id.design_bottom_sheet);
                BottomSheetBehavior.from(bottomSheet).setState(BottomSheetBehavior.STATE_EXPANDED);
}
}

1 Ответ

0 голосов
/ 29 января 2019

Вам нужно позвонить в onCreateDialog

Вот код:

 @Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);

    dialog.setOnShowListener(dialogInterface -> {
        BottomSheetDialog d = (BottomSheetDialog) dialogInterface;

        FrameLayout bottomSheet = (FrameLayout) d.findViewById(android.support.design.R.id.design_bottom_sheet);
        BottomSheetBehavior bsb = BottomSheetBehavior
                .from(bottomSheet);

        bsb.setPeekHeight(56/*Your height*/);

    });

    return dialog;
}
...