【发布时间】:2014-09-25 09:14:09
【问题描述】:
在我的项目中,我使用的是 android 的搜索视图。 它工作正常。
但我遇到了一个问题,即在搜索视图展开时与背景图像有关。
这是我的带有图标和其他搜索和可绘制图标的操作栏。
现在当我点击搜索图标时
这里的图标是变化。默认情况下,它采用启动器图像。但我希望它与图 1 中的显示相同。
那么任何人都可以帮助我解决这个问题。
编辑1
这是我的操作栏样式 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>
编辑2
操作栏的子样式
<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")));
我没有用过其他任何东西。
注意:在第一张图片中显示的主屏幕图标的所有其他导航中即将到来。 问题仅与搜索视图有关。
提前致谢。
布斯卡尼亚
【问题讨论】:
-
请向我们展示您的操作栏样式 xml。
标签: android android-actionbar searchview android-actionbar-compat