ActionBarCompat - App icon action (click) not work

2020-08-26 04:13发布

问题:

I have this problem with the Android ActionBarCompat project: On emulators with Android 4.0 the click on the app icon doesn't cause any onOptionsItemSelected event, whereas it works on all other OS versions.

Any input is greatly appreciated!

回答1:

Are you seeing any touch feedback from the app icon? (Does it glow when you press it?)

Since many activities do not use the action bar home button, in apps that target API 14+ running on Android 4.0 it is disabled by default. (This is so that users don't try pressing it, see it glow, and wonder why nothing happened.) Apps that want to use this should call ActionBar#setHomeButtonEnabled(true).

We should probably revise the ActionBarCompat sample to surface this more clearly. One simple way to get you up and running would be to modify ActionBarHelperICS.java and add the following:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mActivity.getActionBar().setHomeButtonEnabled(true);
}

In an app where you want more control over turning this on and off you would want to make further changes.



回答2:

I had this problem as well. This code did the trick for me:

public void onCreate(Bundle savedInstanceState) {
    ...
    if (android.os.Build.VERSION.SDK_INT >= 11) {
        //noinspection ConstantConditions
        getActionBar().setHomeButtonEnabled(true);
    } else {
        getSupportActionBar().setHomeButtonEnabled(true);
    }
}

Some extra info: minSdkVersion="7" targetSdkVersion="18". This is the LAUNCHER activity of my project, so it has no parent activity. Using setDisplayHomeAsUpEnabled(true) in other activities worked just fine.