删除 EditText 的焦点边框

当聚焦 EditText 视图时,如何删除显示的边框?

我需要它,因为这个视图在屏幕上的空间很小,但是没有边框就足够了。在模拟器上运行时,会出现橙色边框,在设备上出现蓝色边框。

89843 次浏览

有可能。但是我不建议这样做,因为用户已经习惯了某些隐喻,您不应该更改一般的用户体验。

您可以对视图应用不同的样式。在您的例子中,听起来您想要一个看起来像 TextView 元素的 EditTextView 元素。在这种情况下,您必须根据 View 元素的状态为 EditText 指定其他背景。

在所需的 layout.xml 中,为 EditText 分配一个背景:

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hello" android:background="@drawable/custom"
/>

然后在可绘制文件夹中创建 custom.xml 并添加以下内容:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true"
android:drawable="@drawable/textfield_default" />
<item android:state_window_focused="false" android:state_enabled="false"
android:drawable="@drawable/textfield_disabled" />
<item android:state_pressed="true" android:drawable="@drawable/textfield_default" />
<item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_default" />
<item android:state_enabled="true" android:drawable="@drawable/textfield_default" />
<item android:state_focused="true" android:drawable="@drawable/textfield_disabled" />
<item android:drawable="@drawable/textfield_disabled" />
</selector>

这些是 EditTextView 元素的可能状态。通常,您可以通过使用 @android:drawable/textfield_default直接访问 Android 平台的绘图,但是在这种情况下,textfield 绘图是私有的,因此您必须将它们复制到您自己的绘图文件夹中。原始资源可以在 ANDROID_HOME\platforms\android-(API LEVEL)\data\res\drawable-(*dpi)\的 SDK 安装文件夹中找到。

一旦你完成了你结束了一个 EditText,它看起来像一个 TextView,但完全没有这些边框。您在模拟器中看到的橙色边框是默认的 Android 绘图工具。蓝色的是特定供应商(可能是三星)。

希望这有帮助,没有让你太困惑。

你有没有试过把 EditText的背景设置成透明的颜色?

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/hello"
android:background="#00000000"
/>
<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background_normal"


/>

这是最快的解决方案:

<EditText
android:id="@+id/edittext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#00000000"


/>

可以保持背景颜色透明,以移除焦点上的 EditText 边框。

方法1

<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00000000"
/>