Ich arbeite an einer Android-Anwendung und implementiert Searchview darin. Was ich die Schließen-Schaltfläche in der Suchansicht ausblenden soll, wenn es initialisiert wird und nur diese Schaltfläche anzeigen, wenn ich mit der Eingabe beginnen. Verstecke die Schließen-Schaltfläche von Searchview, wenn sie leer ist.Wie zu schließen Schaltfläche in Searchview ausblenden, wenn es leer ist Android
Ich habe dies wie folgt getan.
public void initializeSearchView(){
SearchManager searchManager = (SearchManager)mContext.getSystemService(Context.SEARCH_SERVICE);
mSearchView.setSearchableInfo(searchManager.getSearchableInfo(((Activity)mContext).getComponentName()));
mSearchView.setIconifiedByDefault(true);
mSearchView.setIconified(false);
mSearchView.clearFocus();
int searchImgId = mContext.getResources().getIdentifier("android:id/search_mag_icon", null, null);
ImageView searchIconView = (ImageView) mSearchView.findViewById(searchImgId);
if(searchIconView != null){
searchIconView.setImageResource(R.drawable.ic_action_search);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
searchIconView.setLayoutParams(layoutParams);
}
int searchPlateId = mSearchView.getContext().getResources().
getIdentifier("android:id/search_plate", null, null);
View searchPlate = mSearchView.findViewById(searchPlateId);
if (searchPlate != null) {
int searchTextId = searchPlate.getContext().getResources().
getIdentifier("android:id/search_src_text", null, null);
final TextView searchText = (TextView) searchPlate.findViewById(searchTextId);
searchText.setHintTextColor(ContextCompat.getColor(mContext, R.color.gray_stroke_color));
mSearchView.setQueryHint("Search");
int searchCloseBtnId = searchPlate.getContext().getResources().
getIdentifier("android:id/search_close_btn", null, null);
searchCloseBtn = (ImageView) searchPlate.findViewById(searchCloseBtnId);
searchCloseBtn.setVisibility(View.GONE);
searchCloseBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchText.setText("");
mSearchView.clearFocus();
}
});
}
mSearchView.setOnQueryTextListener(this);
}
Ich habe die Sichtbarkeit GONE auf die Schließen-Schaltfläche zum Zeitpunkt der Initialisierung gesetzt Suche aber es funktioniert nicht. Wie kann ich das erreichen, bitte helfen Sie, wenn jemand hier eine Idee hat.
Vielen Dank im fortgeschrittenen Stadium.
Sichtbarkeit GONE arbeitet zum ersten Mal, wenn ich Searchview initialisiere, aber genauso wie der Searchview den Fokus erhält, wird es stattdessen angezeigt, es sollte nur sichtbar sein, wenn ich irgendetwas in Searchview eintippe. Bitte helfen Sie, wenn Sie wissen, wie ich das erreichen kann. :) –
@PrithnirajNicyone Ah ja, so SearchView handle Aktion und steuern dieses Verhalten für Sichtbarkeit .... Haben Sie versucht, LayoutParams? – GensaGames