Ich habe eine Listview
mit EditTexts
in jeder Zelle. Immer, wenn ich Text zu dem Punkt hinzufüge, dass die EditText
1 Zeile wächst, scrollt die ListView
nach oben (und entfernt normalerweise die EditText
aus der Sicht, indem Sie dies tun).ListView Scrollt nach oben, wenn EditText wächst
Ich habe ein paar Fragen dazu, aber sie scheinen nur "Hacks" als Antworten und nichts, das für mich funktioniert.
ListView scrolls to top when typing in multi-line EditText
Listview with edittext - auto scroll on "next"
EDIT: Nach viel Forschung, ich habe festgestellt, dass es ist, weil die editText ist Ändern der Größe, wodurch das Listview-Layout seiner Subviews und dann an die Spitze zurückzusetzen. Ich möchte einen Weg finden, wie der EditText wächst, während er am selben Ort bleibt.
habe ich versucht, dies wegen eines Vorschlags fand ich online, aber, obwohl es die ListView
auf der richtigen Höhe hält, löscht es den Fokus von den EditText
und ich kann nicht scheinen, mit requestFocus
zu kommen.
private Stirng getTextWatcher(){
return new TextWatcher(){
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override public void onTextChanged(CharSequence s, int start, int before, int count) { }
@Override public void afterTextChanged(Editable s) {
listView.setSelection(index);
}
}
}
Also, was ich brauche, ist entweder:
haben einen Weg für die
ListView
nicht automatisch nach oben zu bewegen, wenn die Subviews wieder werden verlegt oderA Möglichkeit, meine
EditText
nach dem AufrufListView.setSelected()
oder 3. zu fokussieren. Haben Sie eine andere Möglichkeit, dieListView
zu scrollen, die Fokus nicht von derEditText
löschen wird.
Für Option
- I
scrollTo()
undsmoothScrollToPosition()
versucht haben.scrollTo
funktioniert aus irgendeinem Grund, aber verbirgt bestimmte Elemente aus demListView
(sie werden unsichtbar, nicht geladen). UndsmoothScrollToPosition()
erstellt eine Animation, wo dieListView
nach oben springt und dann bringt es den Benutzer zurück zum Item (und macht es 2 oder 3 mal).
Können Sie Ihren Code schreiben? Warum funktionieren diese Antworten nicht für dich? – legendof
@legendof poste meinen Code für was? die Listenansicht? Es scheint mir ziemlich Standard zu sein. Nichts Besonderes. Ich mache nichts damit in Java, außer es zu füllen, nur im XML. Was ich meinte ist, dass all diese Hacks sind und ich etwas elegantes und effizientes wollen ... nicht etwas wie "scrolle die Listenansicht jedes Mal wenn ein Buchstabe hinzugefügt wird" – NickProvost
Kannst du uns das XML Layout zeigen? Der Code für die Listenansicht, sowie die Eltern. Liegt es zufällig in einem ScrollView? –