aka*_*aya 29 android actionbarsherlock android-actionbar
Android文档说明app logo在定义时随处可用.但是当搜索视图扩展时,使用应用程序图标而不是应用程序徽标,当搜索视图处于展开状态时,我找不到显示应用程序徽标的方法.
以下是相关部分.
清单文件
<application
android:name="MyApp"
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:logo="@drawable/app_logo"
android:theme="@style/Theme.MyTheme" >
Run Code Online (Sandbox Code Playgroud)
searchable.xml(设置图标不会改变任何东西)
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:icon="@drawable/app_logo"
android:label="@string/app_name"
android:hint="@string/search_hint" >
</searchable>
Run Code Online (Sandbox Code Playgroud)
menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_search"
android:actionViewClass="com.actionbarsherlock.widget.SearchView"
android:icon="@drawable/ic_search"
android:showAsAction="always|collapseActionView" />
Run Code Online (Sandbox Code Playgroud)
活动代码
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
menu.findItem(R.id.menu_search).setActionView(searchView);
Run Code Online (Sandbox Code Playgroud)
注意:我使用ABS SearchView但是当我切换到默认的SearchView时会发生同样的事情.
编辑:为了清晰起见,我添加了一些截图.
在这里,我使用app图标的星形图像和app图标的android图像.第一个屏幕截图是活动的默认视图.第二个是我点击搜索按钮时的视图.它显示了android图像,而我希望它是星形图像.


Mat*_*ers 20
将徽标drawable设置为您的图标.通过主题属性
<item name="android:icon">@drawable/ab_logo</item>
Run Code Online (Sandbox Code Playgroud)
或者在代码中
getSupportActionBar().setIcon(R.drawable.ab_logo);
Run Code Online (Sandbox Code Playgroud)
Yar*_*lyk 10
您正在使用在menu.xml中声明的完全不同的SearchView.
使用此代码,您可以创建新的SearchView,这不是您想要的.
SearchView searchView = new SearchView(getSupportActionBar().getThemedContext());
Run Code Online (Sandbox Code Playgroud)
所以尝试创建这样的菜单.
this.getSupportMenuInflater().inflate(R.menu.menu, menu);
final SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
final SearchableInfo info = searchManager.getSearchableInfo(getComponentName());
final MenuItem searchItem = menu.findItem(R.id.menu_search);
final SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setSearchableInfo(info);
Run Code Online (Sandbox Code Playgroud)
对于ActionBar,而不是setDisplayUseLogoEnabled(true)和其他,请尝试一次设置所有选项
final ActionBar bar = getSupportActionBar();
bar.setDisplayOptions(
ActionBar.DISPLAY_SHOW_TITLE |
ActionBar.DISPLAY_USE_LOGO |
ActionBar.DISPLAY_SHOW_HOME |
ActionBar.DISPLAY_HOME_AS_UP);
Run Code Online (Sandbox Code Playgroud)
这是我当前项目中的设置,从未遇到过像这样的问题.
小智 7
我有同样的问题,我使用以下代码解决了它:
menu.findItem(R.id.menu_search).setOnActionExpandListener(this);
// Your Activity/Fragment must implement the MenuItem.OnActionExpandListener interface
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
getSherlockActivity().getSupportActionBar().setIcon(R.drawable.uvweb_logo);
return true;
}
Run Code Online (Sandbox Code Playgroud)
让我知道这对你有什么用.
小智 5
我用这个简单的逻辑实现了解决方案:
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.menu_search:
getActionBar().setIcon(R.drawable.your_logo);
return true;
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6250 次 |
| 最近记录: |