菜单项中的 OnActionExpandListener 不起作用.如何解决它



我正在开发一个从API级别14开始工作的Android应用程序。

我的菜单文件中有一个项目

  <item
        android:id="@+id/menu_search"
        android:actionViewClass="android.widget.SearchView"
        android:icon="@drawable/ic_action_action_search"
        android:orderInCategory="3"
         android:showAsAction="always"/>

想知道这个搜索视图的展开和折叠,我试过这段代码,但它不起作用

    @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.activity_search, menu);
            MenuItem mSearchItem = menu.findItem(R.id.menu_search);
            mSearchItem.setOnActionExpandListener( new OnActionExpandListener() {
                @Override
                public boolean onMenuItemActionExpand(MenuItem item) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1)
                     .show();
                    return true;
                }
                @Override
                public boolean onMenuItemActionCollapse(MenuItem item) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1)
                     .show();
                    return true;
                }
            });
    }
}

为什么我没有得到祝酒词?

我还尝试了代码表单处理可折叠的操作视图,它也不起作用!为什么这些东西不起作用?

编辑

我可以使用

mSearchView.addOnLayoutChangeListener(new OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right,
                    int bottom, int oldLeft, int oldTop, int oldRight,
                    int oldBottom) {
                SearchView searchView = (SearchView) v;
                if (searchView.isIconified()) {
                       }
                       else{
                        }
           }
   });

但是它非常慢!

有类似的问题,解决方案是(提问者评论,我只是假设它可以得到更多强调):

android:showAsAction="always|collapseActionView"添加到菜单项。

 <item android:id="@+id/action_search"
        android:icon="@drawable/ic_action_search"
        android:title="@string/action_search"
        android:showAsAction="always|collapseActionView"
        android:actionViewClass="android.widget.SearchView"
        android:queryHint = "@string/search_hint"/>
Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1).show();

建议使用 Toast.LENGTH_SHORTToast.LENGTH_LONG 代替"1"。

例:

Toast.makeText(MainActivity.this, "onMenuItemActionExpand", Toast.LENGTH_SHORT).show();

相关内容

  • 没有找到相关文章

最新更新