本文介绍了ActionBar Compat不显示下拉菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 我在我的应用程序中使用ActionBar兼容,当用户在操作栏中单击按钮时,我需要显示下拉菜单。在4.x版本中没关系,但在2.3我有一些对话框。I'm using ActionBar Compat in my app and i need to show dropdown menu when user click button in actionbar. In 4.x versions it's ok, but in 2.3 i have something like dialog. 2.3截图像我说的,在4.x没关系:Like i said, in 4.x it's ok:这是一些代码:@Overridepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.categories, menu); return super.onCreateOptionsMenu(menu);} categories.xmlcategories.xml<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:onekr="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/refresh" android:icon="@drawable/ic_action_refresh" onekr:showAsAction="always" android:title="@string/refresh" android:visible="true"> </item> <item android:id="@+id/dissmiss_page_loading" android:icon="@drawable/ic_action_cancel" onekr:showAsAction="always" android:title="@string/cancel" android:visible="false"> </item> <item android:id="@+id/categories" android:icon="@drawable/ic_action_overflow" onekr:showAsAction="always" android:title="@string/categories" android:visible="true"> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:onekr="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/city" onekr:showAsAction="always" android:title="@string/city" android:visible="true"> </item> <item android:id="@+id/culture" onekr:showAsAction="always" android:title="@string/culture" android:visible="true"> </item> </menu> </item></menu>为什么会这样?这可以如何解决?非常感谢所有回复的人!Why does this can be? How this can be fixed? Big thanks to all who respond!推荐答案为了避免这种情况,我们需要使用PopupMenu!To avoid this, we need use PopupMenu!例如: action_bar_buttons.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:mynamespace="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/some_other_btn" android:icon="@drawable/some_other_btn" mynamespace:showAsAction="always" android:title="@string/some_other_btn" android:visible="true"> </item> <item android:id="@+id/open_drop_down" android:icon="@drawable/open_drop_down" mynamespace:showAsAction="always" android:title="@string/open_drop_down" android:visible="true"/> </menu> drop_down_menu.xml<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:mynamespace="http://schemas.android.com/apk/res-auto" > <item android:id="@+id/item_1" android:title="@string/item_1" android:visible="true" mynamespace:showAsAction="always"> </item> <item android:id="@+id/item_2" android:title="@string/item_1" android:visible="true" mynamespace:showAsAction="always"> </item></menu>在 MainActivity.javapublic void showPopup(int itemId){ View view = findViewById(itemId); PopupMenu popupMenu = new PopupMenu(getSupportActionBar().getThemedContext(), view); popupMenu.setOnMenuItemClickListener(/* drop_down item click listener */); popupMenu.getMenuInflater().inflate(R.menu.drop_down_menu, popupMenu.getMenu()); popupMenu.show(); }@Overridepublic boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { /* . . . */ case R.id.open_drop_down: showPopup(R.id.open_drop_down); break; /* . . . */ default: break; } return super.onOptionsItemSelected(item);} 这篇关于ActionBar Compat不显示下拉菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-12 04:03