EditText 去掉下划线,但是不丢失光标

1.先解决EditText去掉下划线
没有单纯的属性直接设置,一般使用以下方式

android:background="@android:color/transparent"

或者

android:background="@null"

但是存在一个问题,当编辑的字符全部清除后,会失去焦点,出现调不起键盘的问题,重新

mEditText.requestFocus();

也不管用。

2.其他方法

(1) 为了不失去焦点,我们可以设一个透明的hint,添加以下属性:

android:hint=" "
android:textColorHint="@android:color/transparent"


(2) 另外可以采用设置白色背景图的方式,也不会出现失去焦点问题

//添加属性
android:background="@drawable/bg_cursor" 


//drawabe背景

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="@android:color/transparent" />
<size android:height="1dp"/>
</shape>

备注:
使用hint,hint文字可以任意、颜色设置成你看不见即可;

白色背景图最好用一个白色背景的.9文件。

### 回答1: 要去掉EditText下划线,你可以在XML布局文件中设置EditText的属性: ``` <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@null" android:drawablePadding="8dp" android:padding="8dp" android:textColor="@android:color/black" android:textSize="16sp" /> ``` 在这个例子中,我们将EditText的背景设置为透明,这样下划线就不会显示了。同时,我们也可以设置一些其他的属性,比如文字颜色、文字大小等。 ### 回答2: 要去掉EditText下划线,可以通过以下几种方法实现: 1. 使用属性:可以在XML布局文件中找到EditText标签,然后添加以下属性: ``` android:background="@null" ``` 这将移除EditText的底部下划线。 2. 使用样式:创建一个新的样式文件(例如styles.xml),在该文件中定义一个新的样式,如下: ```xml <style name="NoUnderlineEditText" parent="Widget.AppCompat.EditText"> <item name="android:background">@null</item> </style> ``` 然后在EditText标签中应用这个样式: ```xml <EditText style="@style/NoUnderlineEditText" ...其他属性 /> ``` 这将使用新的样式移除EditText下划线。 3. 动态设置:可以在代码中找到EditText对象,然后通过以下方法移除下划线: ```java editText.setBackground(null); ``` 以上方法将使EditText的背景为空,从而移除下划线。 以上是三种常用的方法去掉EditText下划线,根据具体情况选择合适的方法来实现。 ### 回答3: 要去掉EditText下划线,可以通过以下两种方法实现。 第一种方法是在XML文件中对EditText进行样式设置。在EditText的属性中新增一行属性android:background="@null"即可去掉下划线。具体代码如下: <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@null" /> 第二种方法是通过编程方法来去掉下划线。在java代码中找到相应的EditText对象,并使用setBackground(null)方法来设置背景为空,即可去掉下划线。具体代码如下: EditText editText = findViewById(R.id.editText); editText.setBackground(null); 需要注意的是,这两种方法都可以去掉EditText下划线,具体选择哪种方法取决于你的需求和使用场景。如果只需要对一个EditText去掉下划线,建议使用第二种方法,在代码中进行操作。如果多个EditText需要去掉下划线,可以使用第一种方法,在XML文件中进行设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值