我有一个像这样的简单操作栏菜单:
这就是Java中的样子:
getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
ActionBar.OnNavigationListener navigationListener = new OnNavigationListener() {
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
//when an item is selected (i.e local/My Places/etc)
return false;
}
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_spinner_dropdown_item, new String[] { "Local", "My Places", "Checkins", "Latitude" });
getActionBar().setListNavigationCallbacks(adapter, navigationListener);
选择项目时的回调工作正常,但我想要在打开/关闭下拉列表时进行回调。
我查看了ActionBar.OnMenuVisibilityListener
,但以下内容中没有打印任何内容。
ActionBar.OnMenuVisibilityListener listener = new ActionBar.OnMenuVisibilityListener() {
@Override
public void onMenuVisibilityChanged(boolean isVisible) {
System.out.println("hello world!");
};
};
getActionBar().addOnMenuVisibilityListener(listener);
我接下来可以尝试什么?
答案 0 :(得分:0)
最近我面临同样的任务。我使用相同的方法来显示Spinner
。
但要解决这个问题,我必须用自定义的Spinner
替换它。我删除了这段代码并将自己的Spinner
放到我的活动的xml布局中。
<com.company.yourapp.View.MenuSpinner
android:id="@+id/catalogue_menu_spinner"
android:layout_width="wrap_content"
android:layout_height="?attr/actionBarSize"
android:layout_alignParentLeft="true"
android:layout_below="@id/catalogue_status_bar"
android:background="@null"
android:layout_marginLeft="60dp" />
显示菜单时通知我的类(上面的代码中为MenuSpinner
)我是从this问题得到的。
我希望我的回答可以帮助那些喜欢我的人坚持这一点。