簡體   English   中英

導航抽屜后退按鈕在android中單擊Listener

[英]Navigation Drawer back button Click Listener in android

我在android中使用NavigationDrawer。 它的工作正常。 現在我想更改NavigationDrawer mDrawerToggle.setDrawerIndicatorEnabled(false);圖像,為此,我使用了此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();
        }
    });


}

要更改NavigationDrawer后退按鈕的圖標,您需要使用圖像resourceid調用以下方法:

mDrawerToggle.setHomeAsUpIndicator(resId);

和setDrawerIndicatorEnabled()方法不應設置為false來更新圖標:

mDrawerToggle.setDrawerIndicatorEnabled(false);

因為is是setDrawerIndicatorEnabled() ,所以將其設置為false會做兩件事:

  1. 禁用HomeAsUpIndicator圖標
  2. 禁用clickListener。

您也可以使用操作欄嘗試一下:

在Android API級別18及更高級別中添加了以下功能。

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

如果您使用支持庫,請嘗試以下操作:

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

您也可以嘗試使用樣式:

“上”提供能力指示符由在主題的homeAsUpIndicator屬性中指定的可繪制對象提供。 要用您自己的自定義版本覆蓋它,將是這樣的:

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

如果您的應用程序支持3.0之前的版本,請確保將此版本的自定義主題放在values-v11或類似的值中。

如果仍然無法使用,可以嘗試更換:

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

有:

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

將此添加到您的選項菜單中選定的偵聽器。

@覆蓋

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

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

    }
    return true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM