禁用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的背景有圆angular和阴影效果。

提前致谢。

Solutions Collecting From Web of "禁用EditText可编辑性和焦点(如TextView)"

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

 <style name="Widget.EditText"> <item name="android:focusable">true</item> <item name="android:focusableInTouchMode">true</item> <item name="android:clickable">true</item> <item name="android:background">@android:drawable/edit_text</item> <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item> <item name="android:textColor">@android:color/primary_text_light</item> <item name="android:gravity">center_vertical</item> </style> 

TextView是:

 <style name="Widget.TextView"> <item name="android:textAppearance">?android:attr/textAppearanceSmall</item> </style> 

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

 <item android:state_pressed="true" android:drawable="@drawable/textfield_pressed"/> 

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

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

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

尝试这个 :

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

多less不同的错误的方式(总是使用

 myEditText.setEnabled(false); 

现在我得到一个新的方法。 由于我closures了EditText大部分function,应该更好地思考如何“美化” TextView丑陋的白色背景。 答案是在源代码中:只需将android:background="@android:drawable/edit_text"TextView产生相同的效果。 再次感谢马修。

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

android:focusable =“false”android:focusableInTouchMode =“false”

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

这个:

  <EditText android:layout_width="match_parent" android:layout_height="wrap_content" /> 

具有相同的UI属性:

  <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?editTextBackground"/>