10

我正在开发一个从 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;

                }
            });
    }

}

为什么我没有得到 Toasts?

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

编辑

我可以使用它来工作

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{
                        }
           }
   });

但它非常慢!

4

2 回答 2

6

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

添加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"/>
于 2015-05-07T13:37:58.603 回答
0
Toast.makeText(MainActivity.this, "onMenuItemActionExpand", 1).show();

建议使用Toast.LENGTH_SHORTToast.LENGTH_LONG代替您的“1”。

例子:

Toast.makeText(MainActivity.this, "onMenuItemActionExpand", Toast.LENGTH_SHORT).show();
于 2013-09-12T11:08:22.347 回答