代码之家  ›  专栏  ›  技术社区  ›  akirk

ActionBar vom AppCompat中的SearchView图标始终有阴影

  •  -1
  • akirk  · 技术社区  · 10 年前

    我在AppCompat Actionbar中包含了一个SearchView,但它的图标总是有阴影。

    对于其他图标,我使用的图标来自 the Android Downloads page 它没有阴影,实际上我也尝试为 SearchView 通过 android:icon="@drawable/ic_action_search" 但这不会改变图标。

    search icon with shadow

    我的研究表明 ab_ic_search.png 来自 android-support-v7-appcompat.jar 正在被使用,我的 android:icon=“@drawbable/ic_action_search” 正在被忽略。

    我尝试了各种方法,比如尝试替换 onPrepareOptionsMenu (通过尝试找到 ImageView )或通过 搜索框 但无济于事。

    有什么办法解决这个问题吗?基本上,我只想让我的图标统一,我是否必须为所有其他图标添加阴影?也许我无论如何都无法为这“三个点”添加阴影?

    1 回复  |  直到 10 年前
        1
  •  8
  •   akirk    10 年前

    幸亏 this blogpost ,我设法构建了我的解决方案:

    public boolean onCreateOptionsMenu(Menu menu) {
        // the search view is in the mymenu.xml
        inflater.inflate(R.menu.mymenu, menu);
    
        // now that it is inflated we can get the item
        MenuItem item = menu.findItem(R.id.action_find);
    
       // and through it the actionview
        SearchView searchView = (SearchView) MenuItemCompat.getActionView(item);
        Drawable searchIcon = getActivity().getResources().getDrawable(R.drawable.ic_action_search); // the new icon
    
        // and now we search within the view for the "bad" image
        ImageView collapsedSearchIcon = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_button);
    
        // and finally replace it
        collapsedSearchIcon.setImageDrawable(searchIcon);
    }