我在每個單元格中都有一個Listview
和EditTexts
。每當我將文字添加到EditText
增長1行時,ListView
就會滾動到頂部(並且通常會從視圖中移除EditText
)。ListView在EditText增長時滾動到頂部
我發現了一些關於這個問題,但他們似乎只有「黑客」作爲答案,沒有什麼適合我。
ListView scrolls to top when typing in multi-line EditText
Listview with edittext - auto scroll on "next"
編輯: 了大量的研究後,我發現,這是因爲EDITTEXT是在調整,導致ListView控件佈局其子視圖,然後重置到頂部。我想找到一種方法讓EditText在同一個地方同時增長。
我想這是因爲一個建議,我在網上找到的,但是,即使它保持在ListView
合適的高度,它會清除從EditText
的焦點,我似乎無法得到它帶回requestFocus
。
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);
}
}
}
所以,我需要的是兩種:
擁有的
ListView
爲不自動頂端時,子視圖被再次奠定了或滾動一個辦法在調用
ListView.setSelected()
或3之後,我可以將我的EditText
聚焦。有另一種方法可以滾動ListView
,它不會清除EditText
的焦點。
有關選項
- 我試圖
scrollTo()
和smoothScrollToPosition()
。scrollTo
由於某種原因有效,但隱藏了ListView
中的某些項目(它們變得不可見,未加載)。並且smoothScrollToPosition()
創建一個動畫,其中ListView
跳轉到頂部,然後它將用戶帶回該項目(並且執行2到3次)。
您可以發佈您的代碼?爲什麼這些答案不適合你? – legendof
@legendof發佈我的代碼是什麼?列表視圖?這對我來說似乎很標準。沒什麼特別的。除了填充它之外,我不會在Java中做任何事情,只需在XML中完成。 我的意思是,所有這些都是黑客,我想要一些優雅高效的東西......不像每次添加信件時都滾動列表視圖 – NickProvost
您能向我們展示XML佈局嗎?列表視圖的代碼,以及它的父母。它是否有機會進入ScrollView? –