Вид с BottomSheetBehavior отображается в центре экрана после возврата из onActivityResult

У меня есть активность с CoordinatorLayout, где я поместил FrameLayout с BottomSheetBehavior. Я использую этот FrameLayout в качестве корневого представления для моих всплывающих окон, чтобы они вели себя как BottomSheetDialog. Работает нормально, пока я не открою другое действие для результата и не вернусь к своему действию с результатом. После этого все представления с этим FrameLayout в качестве root отображаются в центре экрана, а не внизу? Что может быть причиной и исправить это? Проблема не появится, если я просто нажму кнопку "Домой" и снова открою приложение. Вот код: https://gist.github.com/yusufabd/d4fca0e3d163bd5fff0ecffea7935ceb

В действии есть метод showCard(), который обрабатывает BottomSheetBehavior и showFeedbackCard(), showTipCard () и showRateCard(), где я строю представление с FrameLayout (lCard) в качестве его корня

1 ответ

Добавь это в свою деятельность onResume метод

   try {

        behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);

        }catch (Exception e){}

Вот behavior ваше поведение нижнего листа

код ниже, чтобы вы знали, что behavior является:

    bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet);
    behavior = BottomSheetBehavior.from(bottomSheet);
Другие вопросы по тегам