【问题标题】:DrawerToggle backbutton setting in android navigation drawer/action bar抽屉在android导航抽屉/操作栏中切换后退按钮设置
【发布时间】:2015-07-09 07:00:14
【问题描述】:

我正在使用 android v4 抽屉切换来实现导航抽屉。

mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                R.drawable.menu_logo, R.string.drawer_open,
                R.string.drawer_close)

我的问题是当我单击导航抽屉图标时,我打开了一个抽屉布局(列表)。如果我单击任何我正在导航到该片段的项目。这是我的代码。

case 1:
fragmentPopped = fragmentManager.popBackStackImmediate(
                    NewBikeSearchFragment.TAG, 0);

            if (!fragmentPopped
                    && fragmentManager
                    .findFragmentByTag(NewSearchFragment.TAG) == null) {

                ft.setCustomAnimations(R.anim.grow_from_middle, R.anim.fade_out);

                NewSearchFragment newfragment = new NewSearchFragment();

                ft.replace(R.id.content_frame, newfragment,
                        NewSearchFragment.TAG);
                ft.addToBackStack(NewSearchFragment.TAG);
                ft.commit();
            }

对于那个片段导航,我想将 R.drawable.menu_logo 更改为 back icon 。我搜索了一些教程和示例,但没有成功。你能告诉我如何在V4 中完成这项任务吗?

【问题讨论】:

    标签: android android-fragments navigation navigation-drawer back


    【解决方案1】:

    请尝试拨打电话

    getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
    

    来自你的片段

    如果这还不够,请添加此行

    getActivity().getActionBar().setHomeAsUpIndicator(R.drawable.ic_back_button);
    

    【讨论】:

      【解决方案2】:
      public static boolean isHomeFragment = true;
      

      在 Fragment 中写下这段代码

      MainActivity.actionBar.setDisplayHomeAsUpEnabled(true);
              MainActivity.actionBar.setHomeAsUpIndicator(R.drawable.ic_action_navigation_arrow_back);
              MainActivity.isHomeFragment = false;
      

      在 Home Fragment 中写下这段代码

      MainActivity.isHomeFragment = true;
                  MainActivity.actionBar.setDisplayHomeAsUpEnabled(true);
                  MainActivity.actionBar.setHomeAsUpIndicator(R.drawable.menu_logo);
      

      在mainactivity中写下这个逻辑。这是完美的。

      @Override
          public boolean onOptionsItemSelected(MenuItem item) {
              switch (item.getItemId()) {
              case android.R.id.home:
      
                  if (isHomeFragment) {
                      if (mDrawerToggle.onOptionsItemSelected(item)) {
                          return true;
                      }
                  }
                  else
                  {
                      onBackPressed();
                  }
                  break;
              default:
                  break;
              }
      
              return super.onOptionsItemSelected(item);
          }
      

      【讨论】:

        猜你喜欢
        • 2015-04-11
        • 1970-01-01
        • 1970-01-01
        • 2016-08-13
        • 2015-05-25
        • 2013-05-20
        • 1970-01-01
        • 2013-09-10
        • 1970-01-01
        相关资源
        最近更新 更多