【问题标题】:Open bottom sheet dialog only for one time仅打开一次底部工作表对话框
【发布时间】:2020-02-24 07:47:02
【问题描述】:

我的底部工作表对话框有问题。如何让我的底部工作表对话框只打开一次?如果我从我的活动中单击该按钮两次,它将打开两次对话框。如何从活动中检查对话框是否打开?如果对话框打开,如果我单击按钮,它将关闭。这是我从活动中打开片段的代码。谢谢

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

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

【问题讨论】:

  • 当用户单击该按钮时禁用该按钮

标签: android dialog fragment


【解决方案1】:

在您的活动中将标志设置为:-

    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);}

【讨论】:

    【解决方案2】:

    虽然Afzal Khan's answer 在我的情况下是正确的,但在底部工作表对话框中执行某些操作(例如:按下按钮)后从未调用过 onPause() 方法。所以我只是重写了 onDismiss() 方法,因为我观察到每次关闭对话框时都会调用 onDismiss() 方法,这与 onPause() 不同

    @Override
    public void onDismiss(DialogInterface dialog) {
        System.out.println("onDismiss() method called");
         **YouActivityName**.isFragmentShown = false;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多