stand ich dieses Problem vor und erstellt um ein Werk für es.
/**
* @param viewGroup
* View to search for child views inside
* @param _class
* child view class inside the View
* @return child view of corresponding View class
*/
public static <V extends View> Collection<V> findChildrenByClass(ViewGroup viewGroup, Class<V> _class) {
return gatherChildrenByClass(viewGroup, _class, new ArrayList<V>());
}
/**
* @param viewGroup
* View to search for child views inside
* @param _class
* child view class inside the View
* @param childrenFound
* child view if found
* @return child view of corresponding View class
*/
@SuppressWarnings("unchecked")
private static <V extends View> Collection<V> gatherChildrenByClass(ViewGroup viewGroup, Class<V> _class, Collection<V> childrenFound) {
for (int i = 0; i < viewGroup.getChildCount(); i++)
{
final View child = viewGroup.getChildAt(i);
if (_class.isAssignableFrom(child.getClass())) {
childrenFound.add((V)child); // unchecked on this line
}
if (child instanceof ViewGroup) {
gatherChildrenByClass((ViewGroup) child, _class, childrenFound);
}
}
return childrenFound;
}
Hier sind zwei Methoden, die alle untergeordneten Blick auf die SearchView
finden, zur Zeit gibt es drei Kinder für SearchView
:
TextView
, die in der Dropdown-Vorschlagsliste zu sehen ist
AutoCompleteTextView
welches Sie innerhalb des SearchView
ImageView
eintippen, das das nahe Bild rechts vonist 0
Jetzt können wir die TextView
finden und ändern Sie dann ihre Farbe. Tun Sie dies in Ihrem Activity
oder Fragment
:
// Setting up the TextView of searchView suggestions drop down list
for (TextView textView : findChildrenByClass(mSearchView, TextView.class)) {
textView.setHint("Type a word");
textView.setTextColor(Color.rgb(255, 255, 255));
textView.setHintTextColor(Color.argb(128, 255, 255, 255));
}
Alles fertig :)
Während dieser Link, um die Frage beantworten kann, ist es besser, die wesentliche Teile der Antwort sind hier und geben Sie den Link Referenz. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. –
Sie sind völlig in Ordnung @ TomBrunberg. Ich bearbeitete die Antwort und fügte die Details hinzu – ljmelgui
Hallo, ich versuche den gleichen Code, aber der Text immer noch weiß, haben Sie einen Vorschlag für dieses Problem? im voraus. – James