导航抽屉后退按钮单击android

时间:2016-06-09 06:14:58

标签: android

我在android中使用NavigationDrawer。它的工作正常。现在我想更改NavigationDrawer backbutton的图像,为此,我使用了这个mDrawerToggle.setDrawerIndicatorEnabled(false); 它隐藏默认的后退按钮图像。现在使用此mDrawerToggle.setHomeAsUpIndicator(R.mipmap.ic_launcher);更改图像 但点击自定义导航后退按钮抽屉不工作。如何管理?

我的代码是

 public void setUp(int fragmentId, DrawerLayout drawerLayout, final Toolbar toolbar) {
    containerView = getActivity().findViewById(fragmentId);
    mDrawerLayout = drawerLayout;
    mDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
        @Override
        public void onDrawerOpened(View drawerView) {
            is= false;
            super.onDrawerOpened(drawerView);

            getActivity().invalidateOptionsMenu();
        }
        @Override
        public void onDrawerClosed(View drawerView) {
            is= true;
            super.onDrawerClosed(drawerView);

            getActivity().invalidateOptionsMenu();
        }
        @Override
        public void onDrawerSlide(View drawerView, float slideOffset) {
            super.onDrawerSlide(drawerView, slideOffset);

        }
    };

    mDrawerToggle.setHomeAsUpIndicator(R.mipmap.ic_launcher);
mDrawerToggle.setDrawerIndicatorEnabled(false);

    mDrawerLayout.setDrawerListener(mDrawerToggle);
    mDrawerLayout.post(new Runnable() {
        @Override
        public void run() {
            mDrawerToggle.syncState();
        }
    });


}

2 个答案:

答案 0 :(得分:0)

要更改NavigationDrawer后退按钮的图标,您需要使用图像resourceid调用以下方法:

mDrawerToggle.setHomeAsUpIndicator(resId);
不应将

和setDrawerIndicatorEnabled()方法设置为false以更新图标:

mDrawerToggle.setDrawerIndicatorEnabled(false);

因为setDrawerIndicatorEnabled(),设置为false它会做两件事:

  1. 禁用HomeAsUpIndicator图标
  2. 禁用clickListener。
  3. 您也可以使用操作栏尝试:

    在Android API级别18和更高版本中添加以下功能。

    ActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
    

    如果您使用支持库,请尝试以下方法:

    getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_yourindicator);
    
      

    你也可以尝试使用样式:

    “up”可供性指标由主题的homeAsUpIndicator属性中指定的drawable提供。要使用您自己的自定义版本覆盖它,它将是这样的:

    <style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
        <item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
    </style>
    

    如果您使用您的应用程序支持3.0之前的版本,请确保将此版本的自定义主题放在值-v11或类似值中。

    如果它仍然不起作用,您可以尝试替换:

    <item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
    

    使用:

    <item name="homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
    

答案 1 :(得分:0)

将此添加到选项菜单中选择的侦听器。

@覆盖

public boolean onOptionsItemSelected(MenuItem item) {
    Intent intent;
    switch (item.getItemId()) {

        case android.R.id.home:
            onBackPressed();
            break;

    }
    return true;
}