Das ist so seltsam, aber wenn Sie einen onClickListener auf einen TextView (oder nicht editierbaren EditText) setzen, der android:textIsSelectable="true"
hat - braucht es nicht einen Tipp, sondern zwei.
Ich habe es auf 3 Handys überprüft und alle führen onClick nur nach dem zweiten Antippen aus.
Natürlich, wenn Sie focusable="false"
oder android:textIsSelectable="false"
machen, funktioniert es ab dem ersten Tippen, aber die Textauswahl funktioniert nicht.
Bitte, helfen Sie mir bei diesem Problem
Ich hatte das gleiche Problem und es ist schwer zu fragen und nach einer Lösung zu suchen.
Hier sind zwei Dinge, die ich neben dem Doppeltipp-Verhalten bemerkt habe:
textIsSelectable
tippen, wird das Wort, das Sie angetippt haben, ausgewählt, auch wenn der Fokus auf etwas anderem liegt, was bedeutet, dass die Ansicht auch die erste Berührung registriert hat. So habe ich es geschafft, es zum Laufen zu bringen. Es ist nicht schön, aber alles funktioniert soweit: In der XML-Datei müssen Sie nur textIsSelectable
hinzufügen, keine anderen focusable
/ focusableInTouchMode
/ clickable
/ enabled
Attribute benötigt; Dann brauchen Sie zwei Listener, eine ist die existierende onClick
welche funktioniert, benötigt aber eine Doppelaufnahme und die andere ist eine onFocusChange
, wo Sie die außergewöhnliche erste Berührung handhaben:
Hier ist eine alternative Lösung in einer verwandten Frage, die ich nicht mag und nicht einmal versucht habe: wrap die TextView in einem FrameLayout und fügen Sie den Listener dazu hinzu.
Hier ist eine weitere verwandte Frage , die mehr Lösungen bietet.
Setzen Sie in XML auf Ihre TextView
%Vor%Danach setzen Sie auf TouchListener zu Ihrem TextView und in ihnen tun dies:
%Vor%Es ist Fokus für jeden Tipp auf TextView gesetzt. Schließlich setzen Sie onClickListener auf Ihre TextView.
Ich habe das gleiche Problem mit einem Halter für meinen benutzerdefinierten RecyclerView.Adapter. Also, ich schneide es für Sie, wenn Sie brauchen:
%Vor%Tags und Links android textview onclicklistener onclick