Диалог открытия нижнего листа только один раз - PullRequest
0 голосов
/ 24 февраля 2020

У меня проблема с моим диалогом нижнего листа. Как сделать так, чтобы диалоговое окно моего нижнего листа открывалось только один раз? Если я дважды нажал кнопку в своей активности, диалоговое окно откроется дважды. Как проверить, открыт ли диалог из активности? Если диалоговое окно открыто, оно будет закрыто, если я нажму кнопку. Вот мой код, чтобы открыть фрагмент из действия. Спасибо

            Bundle bundle = new Bundle();
            bundle.putString("outletData", new Gson().toJson(outletData));

            BookOutletDialogFragment bookOutletDialogFragment = BookOutletDialogFragment.newInstance();
            bookOutletDialogFragment.setArguments(bundle);
            bookOutletDialogFragment.show(getSupportFragmentManager(), bookOutletDialogFragment.TAG);

1 Ответ

1 голос
/ 24 февраля 2020

установите флажок в вашей Активности как: -

    public static boolean isFragmentShown=false;

измените ваши методы onPause () и onStart () ваших фрагментов как: -

  @Override
    public void onStart() {
        super.onStart();
       Log.e( "Fragment is visible", "Fragment is visible");
       **YouActivityName**.isFragmentShown = true;
    }

@Override
    public void onPause() {
        super.onPause();
        Log.e("Fragment is not visible", "Fragment is not visible");
        **YouActivityName**.isFragmentShown = false;
    }

И в вашем клике метод добавить этот код в верхней части, чтобы проверить, фрагмент виден или нет: -

        if(!isFragmentShown){
        Bundle bundle = new Bundle();
        bundle.putString("outletData", new Gson().toJson(outletData));

        BookOutletDialogFragment bookOutletDialogFragment = BookOutletDialogFragment.newInstance();
        bookOutletDialogFragment.setArguments(bundle);
        bookOutletDialogFragment.show(getSupportFragmentManager(), 
        bookOutletDialogFragment.TAG);}
...