搜索视图与android中的后退图标

时间:2014-09-25 09:14:10

标签: android android-actionbar searchview android-actionbar-compat

在我的项目中,我正在使用android的搜索视图。 它运作正常。

但是我遇到了一个问题,即在搜索视图扩展时与背面图像有关。

enter image description here

这是我的操作栏,带有图标和其他搜索和可绘制图标。

现在点击搜索图标

enter image description here

此处图标是更改。它默认采用启动器图像。但我希望它与图像1中的显示相同。

任何人都可以帮助我解决这个问题。

EDIT1

这是我的动作栏式xml。

 <style name="Theme.Example" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="actionBarItemBackground">@drawable/selectable_background_example</item>
    <item name="actionBarTabStyle">@style/ActionBarTabStyle.Example</item>
    <item name="actionBarStyle">@style/ActionBar.Solid.Example</item>
    <item name="actionModeBackground">@drawable/cab_background_top_example</item>
    <item name="actionModeSplitBackground">@drawable/cab_background_bottom_example</item>
    <item name="actionBarTabTextStyle">@style/ActionBarTabText.Example</item>
    <!-- Light.DarkActionBar specific -->
    <item name="android:textColorHighlight">#99c0c0c0</item>
</style>

EDIT2

动作栏的子代码

 <style name="ActionBar.Solid.Example"   parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:icon">@drawable/ic_logo</item>
    <item name="background">@drawable/ab_solid_example</item>
    <item name="backgroundStacked">@drawable/ab_stacked_solid_example</item>
    <item name="backgroundSplit">@drawable/ab_bottom_solid_example</item>
</style>

编辑3

这是我的onCreateOptionsMenu方法。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu items for use in the action bar
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, menu);
    try {
        search = (MenuItem) menu.findItem(R.id.search);

        MenuItemCompat.setOnActionExpandListener(search,
                new OnActionExpandListener() {
                    @Override
                    public boolean onMenuItemActionCollapse(MenuItem item) {
                        // Do something when collapsed

                        layoutList.setVisibility(View.INVISIBLE);
                        return true; // Return true to collapse action view
                    }

                    @Override
                    public boolean onMenuItemActionExpand(MenuItem item) {
                        // Do something when expanded

                        layoutList.setVisibility(View.VISIBLE);
                        return true; // Return true to expand action view
                    }
                });

        SearchView searchView = (SearchView) MenuItemCompat
                .getActionView(search);

        setSearchTextColour(searchView);

        searchView.setQueryHint(getString(R.string.search_hint));
        searchView.setOnQueryTextListener(this);
        searchView.setOnCloseListener(new OnCloseListener() {

            @Override
            public boolean onClose() {
                // TODO Auto-generated method stub
                Debugger.debugE("on close");

                layoutList.setVisibility(View.INVISIBLE);
                return false;
            }
        });
    } catch (Exception e) {
        // TODO: handle exception
    }

    return super.onCreateOptionsMenu(menu);
}

并显示操作栏

    ActionBar actionBar = getSupportActionBar();
    SpannableString s = new SpannableString(getString(R.string.app_name));
    s.setSpan(new TypeFaceSpan(getContext(),
            getString(R.string.font_gothum)), 0, s.length(),
            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    actionBar.setTitle(s);
    actionBar.setDisplayShowHomeEnabled(true);
    actionBar.setDisplayShowTitleEnabled(true);
    actionBar.setBackgroundDrawable(new ColorDrawable(Color
            .parseColor("#bb0404")));

我没有别的用过。

注意:在第一张图片中显示的主屏幕图标的所有其他导航中即将到来。 问题仅适用于searchview。

提前致谢。

Bskania

2 个答案:

答案 0 :(得分:2)

尝试更改styles.xml上的应用主题

您可以这样做:

<style name="AppTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/ActionBar</item>
</style>

<style name="ActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:icon">@drawable/myicon</item>
</style>

答案 1 :(得分:0)

创建自定义操作栏:

 LayoutInflater inflator = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
 View v = inflator.inflate(R.layout.custom_search_actionbar, null);
 actionBar.setCustomView(v);            
 _searchView = (SearchView)v.findViewById(R.id.searchView);
 ....
 ....
 ....

并定义视图和使用的ID。