也许尝试完全省略xml属性
android:editable
,然后尝试以下组合来使光标闪烁且防止触摸事件弹出本地IME(键盘)。
public class EditTextEx extends EditText {
public EditTextEx(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onCheckIsTextEditor() {
return false;
}
}
步骤2
将上述方法更改为 return true;
步骤3
在上述类中添加另一个方法。
@Override
public boolean isTextSelectable(){
return true;
}
第四步
在该类实例被实例化和调用为viewB
的另一个位置,我添加了一个新的触摸事件处理程序。
viewB.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event) {
viewB.setCursorVisible(true);
return false;
}
});
第五步 确保XML和/或EditText实例化代码声明IME/键盘类型为“none”。我没有确认相关性,但我也使用了下面的可聚焦属性。
<questionably.maybe.too.longofa.packagename.EditTextEx
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:focusable="true"
android:focusableInTouchMode="true"
android:inputType="none">
很抱歉有这么多的XML属性。我的代码都在测试4.2.1
, 并且已经得到了结果。
希望这可以帮到你。
android:inputType="none"
。然而,现在我想到了这一点,我不认为这是可能的。开发人员让这样的事情成为可能并没有太多意义。我建议您创建一个自定义的TextView
类,并使用自己的触摸监听器。 - CatTextWatcher
来解决这个问题的方法? - ρяσѕρєя K