按道理,最有效最有问道的解决办法应该是下面这个。
原理是:菜单显示是根据public boolean hasPermanentMenuKey ()这个方法来判断的。这个方法是获取sHasPermanentMenuKey的boolean值。所以我们手动的设置这个值为false即可。
在有 menu按键的手机上面,ActionBar 上的 overflow menu 默认不会出现,只有当点击了 menu按键时才会显示。我们可以通过如下方法,强制让它显示出来。
- package com.example.example;
- import java.lang.reflect.Field;
- import com.example.android_bottomactionbar.R;
- import android.app.ActionBar;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.ViewConfiguration;
- public class MoreActionBarActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- // TODO Auto-generated method stub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_more);
- forceShowActionBarOverflowMenu();
- ActionBar actionBar = getActionBar();
- actionBar.setDisplayHomeAsUpEnabled(true);