問題
在actionbar中使用了自定義佈局,然後在activity中重寫了onCreateOptionsMenu(Menu menu),但是在真機運行時在actionbar右邊看不到overflow button和顯示下拉菜單(skd api 14)。
部分代碼:
AndroidManifest.xml
styles.xml
custome_action_bar.xml
MainActivity.class
public class MainActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
}
menu_main.xml
android真機運行後,actionbar中無法顯示overflow button,按下menu鍵會在屏幕下方顯示菜單,效果圖如下:
之後,我在activity中加入強制顯示overflow button的代碼
private void setOverflowShowingAlways() {
// TODO Auto-generated method stub
try {
ViewConfiguration configuration = ViewConfiguration.get(this);
Field menuField = ViewConfiguration.class
.getDeclaredField("sHasPermanentMenuKey");
menuField.setAccessible(true);
menuField.setBoolean(configuration, false);
} catch (Exception e) {
// TODO: handle exception
}
}
然後並沒有作用,嘗試把custome_action_bar.xml中TextView的id屬性去掉或改變後,再次運行發現actionbar右邊出現了overflow button和菜單欄(下圖)。
在一篇blog中提到actionbar的一般佈局(下圖)是這樣的,爲什麼更改或去掉textview的id屬性會這樣,之前公司app中用的是自定義actionbar佈局,而且其中textview(android:id="@android:id/title")和imageview(android:id="@android:id/home")中id屬性是android默認佈局中控件的id屬性。怎麼樣能夠讓overflow button顯示出來,而不是通過menu鍵在屏幕下方顯示?

(該圖片來源:http://blog.csdn.net/job_hesc/article/details/44409405)
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
ringa_lee