android auto scroll, wenn darauf geklickt wurde edittext
Wenn Benutzer klicken Sie auf edittext ich will den Bildschirm scrollen, um zu zeigen, das edittext in der Mitte des Bildschirms. Also habe ich versucht, zu lauschen, zu berühren (setOnTouchListener, habe auch versucht mit onClick und onFocuse) und dann smoothScrollTo Bildschirm, um den edittext in der Mitte des Bildschirms.
aber aus irgendeinem Grund, wenn ich die setOnTouchListener der edittext es nicht fokussieren.
was brauche ich, um zu beheben? oder wie kann ich das erreichen?
dies ist die setOnTouchListener code, dass die Ursache der edittext nicht ausgerichtet, wenn auf Sie geklickt:
et_email.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
ScrollView scrollView = (ScrollView)getView().findViewById(R.id.ScrollViewSendDetails);
scrollView.smoothScrollTo(0, et_email.getBottom());
return true;
}
});
- Sie können onfocuschanfelistener instade von setontouch Zuhörer.
- Sie sollten sich wirklich Fragen, die Beantworter, der vorschlug, dass Sie diese Lösung anstelle. Dies erzeugt unnötige Geräusche auf, SO.
- so wie empfehlen Sie die Verwirklichung dieses auto-scroll?
- Was passiert, wenn Sie diese entfernen
OnTouchListener
und hinzufügen eine click-listener, um IhreEditText
statt? funktioniert es?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Rückkehr
true
von deronTouch()
Methode zeigt an, dass die touch-Ereignis konsumiert wird, gibt. Zu ermöglichen, die Veranstaltung zu propagieren, die durch die Ansicht, das eigene touch-listener, die Sie benötigen, umreturn false;
.Um die
EditText
zu erlangen, Fokus, nachdem dieScrollView
beendet hat, scrollen, können Sie eineRunnable
zu denScrollView
's handler zu verlangen, konzentrieren sich auf dieEditText
. Zum Beispiel:Leider output-Programm immer noch wollen, Doppel-klicken um zu Blättern
Zuerst möchte ich sagen, nutzen Sie das "OnFocusListener" und dann haben Sie zu verwenden-Handler wie diese;
Nun, Wenn ich auf meinem edittext; Tastatur geöffnet und scrollview gescrollt Spitze zur gleichen Zeit kommen 🙂
Verwenden Sie diese Zeile code auf Ihre onCreate-Methode . Es gibt Sie auto-scrolling beim klicken auf EditText :