禁用EditText可编辑性和焦点(如TextView)

有没有办法在Android中创建类似TextView EditText行为(XML是首选的)? 我尝试过以下方法:

  android:editable="false" android:focusable="false" android:focusableInTouchMode="false" android:cursorVisible="false" android:longClickable="false" 

这可以工作,但我仍然可以触摸EditText来获得焦点(橙色寄宿生),虽然一旦我移开我的手指焦点丢失。 我不确定focusableInTouchMode是做什么的,但是当我不停地触摸时它不会消除焦点。

我不使用白色背景TextView的原因是TextView的背景很难看。 EditText的背景有圆角和阴影效果。

提前致谢。

EditTextTextView非常相似。 我看到硬编码到EditText.java中的唯一区别是将可编辑的默认值设置为true,您已手动设置。 除此之外, EditText 样式是:

  

TextView是:

  

我的猜测是@android:drawable/edit_text是橙色框的来源。 实际上, 它包含 :

  

最简单的方法可能是将其背景设置为默认值:

android:background="@android:drawable/textfield_default"

禁用EditText可编辑性和焦点(如TextView)。

尝试这个 :

 android:longClickable="false" android:clickable="false" android:cursorVisible="false" android:editable="false" 

有多少不同和错误的方式(总是使用

 myEditText.setEnabled(false); 

现在我开始了新的方式。 由于我关闭了EditText大多数function,因此最好考虑如何“美化” TextView的丑陋白色背景。 答案在源代码中:只需将android:background="@android:drawable/edit_text"TextView就可以产生相同的效果。 再次感谢马修。

你可以使用your_edit_text.setKeyListener(null); 只是为了让它不可编辑..

如果您希望EditText不可编辑或可聚焦(就像TextView )但具有正确的背景,则可以在TextView上使用属性?editTextBackground 。 如果您使用像@android:drawable/edit_text这样的@android:drawable/edit_text ,它将不会使用依赖于api版本的背景。

这个:

   

具有相同的UI属性: