Nic*_*ost 13 java android listview android-edittext
我有一个Listview与EditTexts在每一个细胞.每当我将文本添加到EditText增长1行的点时,ListView滚动到顶部(并且通常EditText通过这样做从视图中删除).
我发现了一些关于这个的问题,但他们似乎只有"黑客"作为答案,没有什么对我有用.
在多行EditText中键入时,ListView会滚动到顶部
带有edittext的Listview - 自动滚动"下一步"
编辑:经过大量的研究,我发现这是因为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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以我需要的是:
ListView当子视图再次布局时,有一种方法可以不自动滚动到顶部
一种方法可以EditText在调用之后关注我ListView.setSelected() 或3.有另一种方式来滚动ListView它不会清除焦点EditText.
可供选择
scrollTo()和smoothScrollToPosition().scrollTo由于某种原因工作,但隐藏了某些项目ListView(它们变得不可见,没有加载).并smoothScrollToPosition()创建一个动画,其中ListView跳转到顶部,然后它将用户带回到项目(并执行2或3次).根据我的观点,如果您想ListView通过使用从项目中获取输入EditText,那么您应该TextView就地使用EdiText,然后单击TextView您应该打开输入对话框,EditText这是更简单和更好的解决方案。EditText焦点的处理是很困难的,你需要为此ListView付出额外的努力。Listeners
或者
如果您的 UI/UX 中的输入框数量有限,那么您可以EditText使用.CustomListViewScrollViews
| 归档时间: |
|
| 查看次数: |
726 次 |
| 最近记录: |