我有一个带有ListView组件的Activity, 每排都有类似的东西 EditText1,EditText2,EditText3,CheckBox1
所有这些组件在getView方法中以编程方式创建和添加到LinearLayout ...还由于程序逻辑而创建启用或禁用的编辑器:
editor.setEnabled(field.isEditable());
好吧,最初是所有行和列中的所有编辑器 有一个很好的焦点属性
isFocusable:true,isFocusableInTouchMode:true
但后来我添加了一个代码来明确设置编辑器的可聚焦性:
editor.setEnabled(field.isEditable());
editor.setFocusable(field.isEditable());
之后编辑以奇怪的方式生成: 其中一些在
上有两个焦点属性isFocusable:true,isFocusableInTouchMode:true
但是其中一些在触摸模式下无焦点生成:
isFocusable:true,isFocusableInTouchMode:false
所以我在调用 requestFocus();
时遇到问题为什么UI视图可以使用 isFocusableInTouchMode() - " neighbor"来获取此类未定义的行为。当我用 true 参数以编程方式设置 setFocusable()时, isFocusable()标志?
答案 0 :(得分:0)
好吧,看来listview每次都没有做新的观点, 例如,如果我能在全屏幕上看到
row1
row2 (not focusable)
row3
row4
row5
然后,当我向下滚动到
row6
row7 <--
row8
row9
row10
row7将继承row2的所有属性。 它似乎是在屏幕上生成的行重用作为绘制所有其他行的模板。继续深入研究ListView的基础知识