如何在Android Lollipop中使用带边框的EditText

Joi*_*ois 40 android android-layout

我正在开发一款Android应用.我需要知道如何使用带边框的EditText.在Lolipop中,他们完全改变了EditText风格.我们可以不使用drawables吗?

ELI*_*ITE 84

在资源中的drawable文件夹中编写editTextBackground.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="1dp"
        android:color="@color/borderColor" />
</shape>
Run Code Online (Sandbox Code Playgroud)

不要忘记在名为的资源中声明颜色borderColor.

并将此背景分配给EditTextin xml background属性

<EditText
    android:id="@+id/text"
    android:background="@drawable/editTextBackground"
    />
Run Code Online (Sandbox Code Playgroud)

它会设置边界EditText.

UPDATE

您可以使用style属性更改编辑文本的边框而无需绘制

style="@style/Widget.AppCompat.EditText"
Run Code Online (Sandbox Code Playgroud)

有关详细信息请访问自定义编辑文本

  • `style ="@ style/Widget.AppCompat.EditText"`对我不起作用. (4认同)
  • 改变风格对我没用 (2认同)

Ind*_*ile 20

你可以使用drawable.在drawable文件夹中创建一个可绘制的布局文件.粘贴此代码.您也可以修改它 - border.xml.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
    android:width="1dp"
    android:color="@color/divider" />
<solid
    android:color="#00FFFFFF"
    android:paddingLeft="10dp"
    android:paddingTop="10dp"/>
<padding
    android:left="10dp"
    android:top="10dp"
    android:right="10dp"
    android:bottom="10dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

在EditText视图中,添加

android:background="@drawable/border"
Run Code Online (Sandbox Code Playgroud)

  • >不使用drawables (3认同)

Ale*_*lig 7

你可以使用xml来做到这一点.

创建一个xml布局并将其命名为my_edit_text_border.xml

 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#ffffff"/>
            <corners android:radius="5dp" />
            <stroke
                android:width="2dp"
                android:color="#949494"
                />
        </shape>
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

添加背景到您的 Edittext

<EditText
 android:id="@+id/editText1"
 ..
 android:background="@layout/my_edit_text_border">
Run Code Online (Sandbox Code Playgroud)