Ändern der Cursorfarbe in SearchView ohne ActionBarSherlock

8

Ich versuche, die Farbe des blinkenden Cursors im SearchView-Widget in ICS + zu ändern. Ich habe folgendes versucht:

  • Hinzufügen von <item name="android:textCursorDrawable">@null</item> zu meinem Thema
  • Hinzufügen eines Stils für AutoCompleteTextViews zu meinem Thema und Festlegen des textCursorAttribute dieses Stils auf @null
  • Einstellung von android:textCursorDrawable="@null" direkt auf dem SearchView

Ich lese die Antwort hier ( Benutzerdefinierte Cursorfarbe in SearchView ), aber dort ist kein Nicht-ABS-Stil für searchAutoCompleteTextView, also konnte ich das nicht versuchen. Ich suchte auch nach einer Java-Methode, um den Textcursor ziehbar zu machen, konnte aber keinen finden - ich ändere andere Aspekte des SearchView in Java und könnte dies mit dem Cursor tun, wenn eine Methode verfügbar wäre.

>

Ich habe das SearchView ziemlich umfangreich angepasst, aber diese letzte Änderung verhindert, dass es richtig aussieht - der Cursor ist weiß auf einem weißen Hintergrund, so dass er nicht leicht zu sehen ist. Irgendwelche anderen Ideen von Dingen, die ich versuchen kann?

    
Eric Brynsvold 09.09.2013, 19:07
quelle

4 Antworten

53

Basierend auf den obigen Kommentaren und Antworten habe ich ein Beispiel dafür gegeben, wie dies durch Reflexion aussehen könnte. Dies löst das Problem in meiner App. Hoffe, es rettet jemand anderen einige Zeit.

%Vor%

Diese 0 könnte eine andere Ressourcen-ID wie R.drawable.my_cursor

sein     
Paul 05.11.2013, 18:45
quelle
3
%Vor%     
evan 24.12.2013 09:35
quelle
1

Wie schon erwähnt:

Wenn Sie sich den Android-Quellcode ansehen, werden Sie feststellen, dass mCursorDrawableRes nur einmal im 3-Param-Konstruktor gesetzt wird. Leider bedeutet dies, dass es keine einfache Möglichkeit gibt, es zur Laufzeit zu ändern. Ihre Optionen sind möglicherweise auf die Verwendung von Reflection beschränkt oder Sie verschieben Ihre benutzerdefinierte SearchView in das Paket android.widget , um auf das paketgeschützte Member zuzugreifen.

    
MH. 09.09.2013 20:25
quelle
1

Dies ändert die Textfarbe und funktioniert auch auf Android 8:

%Vor%     
Gunnar Bernstein 05.01.2014 12:46
quelle

Tags und Links