ツールバーにSearchViewがあり、デフォルトの戻るボタンのアイコンを変更したいと思います。SearchViewの戻るボタンを変更する方法
これは私のツールバーです:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/my_awesome_toolbar"
android:layout_width="fill_parent"
android:layout_height="?android:attr/actionBarSize"
app:titleTextColor="@android:color/black"
android:elevation="5dp">
</android.support.v7.widget.Toolbar>
そして、これが私のSearchViewのレイアウトです:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/search"
android:title="@string/search"
app:icon="@drawable/ic_search_black_24dp"
android:icon="@drawable/ic_search_black_24dp"
app:showAsAction="always|collapseActionView"
android:maxWidth="50dp"
app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
そして、これは私が私の活動で私のオプションのメニューを作成する方法である:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_search_team, menu);
SearchManager searchManager = (SearchManager)
getSystemService(Context.SEARCH_SERVICE);
searchMenuItem = menu.findItem(R.id.search);
searchView = (SearchView) searchMenuItem.getActionView();
ImageView searchClose = (ImageView) searchView.findViewById(android.support.v7.appcompat.R.id.search_close_btn);
searchClose.setImageResource(R.drawable.ic_action_cancel_black);
searchClose.setVisibility(View.VISIBLE);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) searchClose.getLayoutParams();
params.gravity = Gravity.RIGHT;
searchClose.setLayoutParams(params);
searchClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Clear query
searchView.setQuery("", false);
//Collapse the action view
searchView.onActionViewCollapsed();
//Collapse the search widget
searchMenuItem.collapseActionView();
listview.setVisibility(View.GONE);
viewPager.bringToFront();
appBarLayout.setVisibility(View.VISIBLE);
}
});
for (TextView textView : findChildrenByClass(searchView, TextView.class)) {
textView.setTextColor(Color.BLACK);
textView.setHintTextColor(Color.BLACK);
}
searchView.setSearchableInfo(searchManager.
getSearchableInfo(getComponentName()));
searchView.setSubmitButtonEnabled(true);
searchView.setOnQueryTextListener(this);
return true;
}
出力は次のとおりです。
私が望むのは、このアイコンを右に隠すか、アイコンを自分のアクティビティについて投稿したコードのImageViewとして定義している "x"イメージに変更することです。
返事をありがとう!このスタイルをSearchViewにどのように適用できますか? –
スタイルはマニフェストを通じて適用されます。あなたは既にあなたのスタイルフォルダにデフォルトのAppThemeを持っています。上記のようなあなたのドロウアブルを指し示すアイテムを作るだけです。次に、AppThemeのアクティビティやアプリケーションにスタイルを割り当てるだけで、それが機能します。 AppThemeをアプリケーションに割り当てることによって、アクティビティを伝播します。次にアンドロイド:defaultStuffをオーバーライドすることでアンドロイドコントロールのスタイルを制御します。理にかなっている?あなたはスタイリングで多くをすることができます。 – Sam
こんにちは、現在、searchViewアイコンをクリックすると、searchViewが開き、listViewが表示されます。 「searchView」の「戻る」矢印ボタンをクリックすると、searchViewは閉じられますが、listViewは開いたままになります。searchViewの「戻る」ボタンを押すと、searchViewを閉じるときにlistViewを閉じることができますか? – iBEK