Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android-actionbar – 打开ActionLayout时隐藏菜单项大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用ActionBarSherlock:

有3个菜单项,其中只有1个具有ActionLayout.

default_menu.xml

<item
    android:id="@+id/searchIcon"
    android:icon="@drawable/search_icon"
    android:actionLayout="@layout/search_icon_actionview"
    android:showAsAction="always|collapseActionView"
    android@R_631_6964@="Search"/>
<item
    android:id="@+id/newIcon"
    android:icon="@drawable/new_icon"
    android:orderInCategory="0"
    android:showAsAction="ifRoom|collapseActionView"
    android@R_631_6964@="New"/>
<item
    android:id="@+id/notificationIcon"
    android:icon="@drawable/notification_icon"
    android:orderInCategory="0"
    android:showAsAction="ifRoom|collapseActionView"
    android@R_631_6964@="Notifications"/>

如果我使用上面的代码.只有前2个图标可见.如果我将“第二”和“第三”视为“始终”,则即使在单击“搜索”时打开了actionLayout,它们也会保留.

我想最初显示所有3个菜单项,当点击search_icon时隐藏每个项目.

我对我的实施也有疑问,不管我是以正确的方式做事.

在Activity的(有一个viewPager)第一个片段:

@Override
public Boolean onOptionsItemSELEcted(MenuItem item) {
    switch (item.getItemId()) {

    case R.id.searchIcon:

    mEtSearchbar.clearFocus();
    (new Handler()).postDelayed(new Runnable() {
       public void run() {
           mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(),SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN,0));
           mEtSearchbar.dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(),MotionEvent.ACTION_UP,0));
       }
    },100);

        return true;
    case R.id.newIcon:

        return true;
    case R.id.notificationIcon:

        return true;
    default:
        return super.onOptionsItemSELEcted(item);
    }
}

@Override
public void onCreateOptionsMenu(Menu menu,MenuInflater inflater) {
    // TODO Auto-generated method stub
    inflater.inflate(R.menu.default_menu,menu);

    mSearchbar = (MenuItem) menu.findItem(R.id.searchIcon);
    View actionview = mSearchbar.getActionView();
    mEtSearchbar = ((EditText) actionview.findViewById(R.id.search_editText));
    ImageView searchImage = ((ImageView) actionview.findViewById(R.id.search_imagE));
    searchImage.setOnClickListener(new View.onClickListener() {

        @Override
        public void onClick(View arg0) {

            String s = mEtSearchbar.getText().toString();
            Toast.makeText(getSherlockActivity(),"Searching for: " + s,Toast.LENGTH_SHORT)
                    .show();
        }
    });
    super.onCreateOptionsMenu(menu,inflater);
}

解决方法

这就是我最终使用的.
@Override
    public Boolean onCreateOptionsMenu(Menu menu) {

            super.onCreateOptionsMenu(menu);
            MenuInflater inflater = getSupportMenuInflater();
            inflater.inflate(R.menu.main,menu);

            MenuItem searchItem = menu.findItem(R.id.search);

            mSearchView = (SearchView) searchItem.getActionView();
            setupSearchView(searchItem);

            mSearchView.setOnSearchClickListener(new View.onClickListener() {
                    @Override
                    public void onClick(View v) {
                            // hide action item
                            if (menu != null) {
                                    menu.findItem(R.id.notifications).setVisible(false);
                                    menu.findItem(R.id.sharE).setVisible(false);
                            }

                    }
            });
            mSearchView.setOnCloseListener(new SearchView.onCloseListener() {
                    @Override
                    public Boolean onClose() {
                            adapter.getFilter().filter("");
                            // re-show the action button
                            if (menu != null) {
                                    menu.findItem(R.id.notifications).setVisible(true);
                                    menu.findItem(R.id.sharE).setVisible(true);
                            }
                            return false;

                    }
            });
            return true;
    }

private void setupSearchView(MenuItem searchItem) {
         //code
}

大佬总结

以上是大佬教程为你收集整理的android-actionbar – 打开ActionLayout时隐藏菜单项全部内容,希望文章能够帮你解决android-actionbar – 打开ActionLayout时隐藏菜单项所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。