【问题标题】:back press on fragment finishing activity后按片段整理活动
【发布时间】:2018-06-15 09:24:19
【问题描述】:

我有一个带有片段的活动,它也可以导航。当您回击片段时,它应该返回到活动。但是当你在应用关闭的那一刻回击时。

现在这不是完全不受欢迎的行为,因为我希望应用程序在您回击主要活动时关闭。

执行此操作的主要活动的代码:

@Override
    public void onBackPressed() {
        DrawerLayout drawer = findViewById(R.id.drawer_layout);

        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();

            this.finishAffinity();
        }
    }

fragment 上没有 onBackPressed 方法

我怎样才能做到这一点,以便当您回击片段时主要活动显示,但当您回击活动时应用程序关闭

【问题讨论】:

    标签: java android android-fragments


    【解决方案1】:

    像这样使用它

    适用于 API 5 级及更高级别

    @Override
    public void onBackPressed() {
      super.onBackPressed()
    if (keycode == KeyEvent.KEYCODE_BACK) {
                if (drawer.isDrawerOpen(GravityCompat.START)) {
                    drawer.closeDrawer(GravityCompat.START);
                } else {
                    finish();
                }
    }
    

    早于 API 5

     public boolean onKeyDown(int keycode, KeyEvent event) {
            if (keycode == KeyEvent.KEYCODE_BACK) {
                if (drawer.isDrawerOpen(GravityCompat.START)) {
                    drawer.closeDrawer(GravityCompat.START);
                } else {
                    finish();
                }
            }
            return super.onKeyDown(keycode, event);
        }
    

    让我知道它是否适合你

    【讨论】:

      【解决方案2】:

      onBackPressed()中删除this.finishAffinity();

      示例代码

      @Override
          public void onBackPressed() {
              DrawerLayout drawer = findViewById(R.id.drawer_layout);
      
              if (drawer.isDrawerOpen(GravityCompat.START)) {
                  drawer.closeDrawer(GravityCompat.START);
              } else {
                  super.onBackPressed();
                  finish();
      
              }
          }
      

      【讨论】:

      猜你喜欢
      • 2012-01-30
      • 1970-01-01
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2018-05-14
      • 2018-01-02
      • 1970-01-01
      • 2016-11-25
      相关资源
      最近更新 更多