我需要知道单击它时如何更改操作栏搜索视图图标?我目前正在使用“Theme.Holo.Light”,我不想再更改这个主题了。无论如何,单击它时可以更改 ActionBar 中的 SearchView 图标吗?
问问题
969 次
1 回答
1
是的,这是可能的。您应该做的是为搜索菜单选项创建自定义布局,比如说 searchLayout。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:orientation="vertical" >
<ImageView
android:id="@+id/img_search"
android:layout_width="40dip"
android:layout_height="40dip" />
</LinearLayout>
现在在您的菜单选项中使用此布局。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menuSearch"
android:actionLayout="@layout/searchLayout"
android:showAsAction="always"
android:title="search"/>
</menu>
现在您只需要从菜单选项中获取视图:
@Override
public boolean onPrepareOptionsMenu( Menu menu )
{
final MenuItem item = menu.findItem( R.id.menuSearch );
LinearLayout layoutSearchView = (LinearLayout) item.getActionView();
ImageView img = (ImageView) layoutSearchView.findViewById( R.id. img_search);
// now you have your image of search . on click you can change the image using set onclick listener of image or do what ever you want with the layout.
img.setOnClickListener( new View.OnClickListener()
{
@Override
public void onClick( View v )
{
// change your image
}
} );
}
抱歉任何错字。希望这会有所帮助。
注意:我正在onPrepareOptionsMenu
此代码段中更改图像代码,但我建议创建一个方法并从 onPrepareOptionsMenu 传递菜单项并在该方法中执行任务。
于 2013-10-11T05:08:52.347 回答