android edittext 下划线没了,关于android:如何在EditText中隐藏下划线
如何隐藏EditText下栏(结尾有小衬线的提示行)?
也许有更好的方法来做我想做的事情:我有一个带有EditText的布局。通常,在用户可以点击它并开始输入或编辑文本的地方,这会显示良好。
但是,有时我希望使用相同的布局(简化其他逻辑)以只读方式显示相同的数据。我希望演示文稿是相似的-它应该有相同的高度和字体,但没有底线。
作为一个停止间隙度量,我将通过删除EditText并替换一个TextView来实现这一点。我认为这会产生期望的结果,但这似乎是一种迂回的昂贵方法,通过改变属性来做一些应该很容易做的事情。
可能重复?stackoverflow.com/questions/5478109/…
您可以将EditText设置为具有自定义透明可拖动或仅使用
android:background="@android:color/transparent"
或
android:background="@null"
正如Ha1ogen所说,最好的答案是定制一个可绘制的。从用于普通编辑文本字段的9补丁开始。修改它可以去掉底线和其他你不想要的图形。这样,修改后的EditText将具有与普通EditText字段相同的页边距和整体外观。如果只将背景设置为空,它将丢失页边距。
用这个:android:background="@android:color/transparent"。
如果我已经有了其他颜色的背景,比如灰色,在这种情况下如何删除底线/下划线?
在android 19中,使用android:background="@android:color/transparent"会导致相同的利润损失问题…有没有一个例子,有人创建这样一个定制的抽屉?
如何在Java中编程?
如果我们想返回默认值,默认背景是什么?
语法已更改。以编程方式执行:myedittext.backundgroundresource(r.color.fui-transparent);。我曾经将可见性设置为false,以便在用户单击我的自定义文本框时不显示底线并发送一条PerformClick消息,但是这样做更可靠。
将背景设置为空。
android:background="@null"
这与background="00000000"相同。不太管用。
这对我很有效,但我最终做了android:background="@android:color/transparent,因为@null很可怕。
@理查德为什么埃多克斯1〔3〕可怕?
@空将表示不存在背景。如果我们指定background="00000000",它将使用alpha值"0"绘制白色背景。
"@null"也隐藏闪烁的光标,"@android:color/transparent"不是。
@Vinayakvnaik实际上是透明的黑色。非透明白色,即00ffffff
@卢卡斯诺瓦克,你在哪个安卓版本和设备上看到这个?对我来说,它看起来很好…
@Dicklucas空值并不可怕,它非常有用。在这种情况下,完全可以使用BackbackgroundDrawable(空值);这使得背景成为默认设置,就像你没有设置它一样。(每个布局之间很常见,不仅仅是这个布局)。
@Stevemoretz之所以称为"十亿美元的错误",有一个原因。我尽量避免出现空指针异常。在这种情况下,我特别避免这样做,因为我更愿意明确地了解我想要的背景。在这种情况下,空值只是隐式地将背景设置为透明的,谁知道它在将来的Android版本中将意味着什么。虽然将其设置为android:color/transparent是明确的,而且不仅在将来的android版本中更容易工作,对于其他将查看我的代码的开发人员来说,它也更清晰。
@Dicklucas OK,让我们清除应该发生的空指针异常,因为,地狱如何使用未初始化的指针?但空用于视图中的特殊情况,也用于自定义视图和许多其他情况。您应该更多地参与其中。什么是?@android:color/transparent让我们来看看:00000000,您可以在android包中看到的值与空值相同!即使在appcompateditext类setInternalBackgroundTint(空);中,也会使用和许多其他情况。您最好更多地与空相关,而不是害怕。
请将EditText背景设置为
android:background="#00000000"
它会起作用的。
这会有点效果,但不太合适。如果只删除背景,也会丢失字段周围的边距-它们是默认背景的一部分。正如@ha1ogen所建议的,正确的解决方案是替换一个完全没有底线的不同背景。
如何通过程序撤消此操作
可以将EditText的backgroundTint值设置为特定颜色。如果设置透明颜色,则底线应该消失。
android:backgroundTint="@color/Transparent"
#00000000
但你可以在Api v21(Lollipop)或更高版本中使用它
这比改变整个视图的背景(如其他答案所示)要好得多。
您可以使用setBackgroundResource以编程方式完成:
editText.setBackgroundResource(android.R.color.transparent);
使用任一属性:
android:background="@null"
或
android:background="@android:color/transparent"
为我隐藏编辑文本的下划线而工作。
但是,请注意,它会导致我围绕EditText的textinputlayout出现间距问题。
间距问题来自错误布局。为了修复将textinputlayout的errorEnabled属性设置为false app:errorEnabled="false"的问题。
以下是隐藏它的方法,而不破坏默认填充:
fun View.setViewBackgroundWithoutResettingPadding(background: Drawable?) {
val paddingBottom = this.paddingBottom
val paddingStart = ViewCompat.getPaddingStart(this)
val paddingEnd = ViewCompat.getPaddingEnd(this)
val paddingTop = this.paddingTop
ViewCompat.setBackground(this, background)
ViewCompat.setPaddingRelative(this, paddingStart, paddingTop, paddingEnd, paddingBottom)
}
用途:
editText.setViewBackgroundWithoutResettingPadding(null)
这个答案是完美的,应该被接受。它可以删除背景而不删除默认填充。
我所做的是创建一个可绘制的形状,并将其设置为背景:
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
android:top="8dp"
android:bottom="8dp"
android:left="8dp"
android:right="8dp" />
注:我实际使用了@dimen和@color值作为firelds,但为了清晰起见,我简化了这里的形状文件。
这也是一个很好的选择。这是一个设置自定义可拖动的变体。
您还必须设置minwidth,否则,如果文本为空,光标将消失。
android:id="@+id/et_card_view_list_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="30dp"
android:layout_weight="1"
android:inputType="text"
android:text="Name"
android:background="@android:color/transparent"
/>
如果编辑文本已经有背景,则可以使用以下内容。
android:textCursorDrawable="@null"
虽然这不能解决这个问题,但对我有帮助。
我有这样的东西,非常有用:
generalEditText.getBackground().mutate().setColorFilter(getResources().getColor(R.color.white), PorterDuff.Mode.SRC_ATOP);
其中GeneralEditText是我的EditText,而白色是:
#ffffff
这将不会删除填充,并且您的EditText将保持原样。只删除底部的行。有时这样做更有用。
如果您使用android:background="@null"作为许多建议,您将丢失填充,edittext将变小。至少是我的情况。
如果你设置背景NULL并尝试上面提供的Java代码,你的应用程序在执行它后就会崩溃。(因为它得到了背景,但它是空的。)这可能很明显,但我认为指出它很重要。
我发现了最奇怪的东西!如果使用数据绑定将其设置为null:android:background="@{null}"
然后,不仅删除了背景,而且视图还有根据默认背景计算的填充。因此,出于某种原因,延迟的空设置没有从以前的bg中清除填充。视图上的填充是左/上/右4dp,下13dp(来自Emulator级别21)。
在所有API级别上可能没有相同的最终结果,所以要小心!有人告诉我,如果你测试这个并发现它是可靠的。(还要注意,底部填充物之所以突出,是因为原始的下划线。所以您可能希望在XML中更改它,或者在加载到相等的top之后在代码中重置它…
如果希望此操作影响EditText的所有实例和继承该实例的任何类,则应在主题中设置属性EditTextBackground的值。
@drawable/bg_no_underline
我使用的可绘图的一个例子是:
android:insetLeft="@dimen/abc_edit_text_inset_horizontal_material"
android:insetRight="@dimen/abc_edit_text_inset_horizontal_material"
android:insetTop="@dimen/abc_edit_text_inset_top_material"
android:insetBottom="@dimen/abc_edit_text_inset_bottom_material">
这是默认材料设计实现的稍微修改过的版本。
当应用时,它将使你的所有编辑文本删除整个应用程序的下划线,你不必手动将样式应用到每一个。
简单地使用这个
editText.setBackgroundColor(Color.TRANSPARENT);
您还可以为EditText定义样式,以便可以共同重新组合所有属性。如果需要多个编辑文本,而这些文本需要具有
将代码放在res/values/styles.xml中
@color/transparence //NO UNDERBAR
1
28dp //COMMON HEIGHT
之后你只需要在你的编辑文本中调用它
android:id="@+id/edit1"
style="@style/MyEditTextStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:id="@+id/edit2"
style="@style/MyEditTextStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
程序性使用:editText.setBackground(null)。
从xml使用:android:background="@null"。
android:background="@android:color/transparent"
或
android:background="@null"
在我的例子中,editText.setBackgroundResource(R.color.transparent);是最好的。
它不会删除默认填充,就在条下。
R.color.transparent = #00000000
将背景设置为空
android:background="@null" in your xml
如果使用背景,则必须使用此标记'android:testcursordrawable="@null"'
android edittext 下划线没了,关于android:如何在EditText中隐藏下划线相关推荐
- excel添加列下拉框票价_如何在excel中设置下拉菜单
excel是日常办公中应用非常多的办公软件之一,其强大的数据统计.分析功能为工作带来不少方便.在EXCEL中设置下拉菜单,以方便输入相同内容.本文就以将性别设置为下拉菜单为例,介绍在excel中设置下 ...
- ipad mini android平板,iPad mini没想带Android平板玩
网易科技专栏作家 师北宸(专栏) 不出意外,苹果在10月23日(北京时间10月24日凌晨)发布了iPad mini,从7.9英寸大小尺寸.非Retina屏,到329美元的定价,甚至出货日期,都没有出乎 ...
- mysql 表名 下划线_我们可以在MySQL表名中加下划线吗?
您不能在表名称中添加下划线.如果您仍想使用下划线创建新表,请使用反引号(而不是单引号)将其引起来. 但是,让我们首先尝试在带下划线的表名周围设置引号.以下是一个例子-mysql> create ...
- java能下划线开头_为什么Java7开始在数字中使用下划线
JDK1.7的发布已经介绍了一些有用的特征,尽管大部分都是一些语法糖,但仍然极大地提高了代码的可读性和质量.其中的一个特征是介绍字面常量数字的下划线.从Java7开始,你就可以在你的Java代码里把长 ...
- ACT5.6 动手实验手册 如何在工作组模式下对客户端进行数据收集 如何在AD域环境下对...
ACT5.6 动手实验手册 实验的目标 这个实验的目的是: · 了解如何部署ACT5.6 · 了解如何在工作组模式下对客户端进行数据收集 · 了解如何在AD域环境下对客户端进行数据收集 本次试验大约6 ...
- mysql 获取递增id_如何在MySQL中获取下一个自动递增ID?
MySQL具有AUTO_INCREMENT关键字来执行自动增量.AUTO_INCREMENT的起始值为1,这是默认值.每条新记录将增加1. 要获得MySQL中的下一个自动增量ID,我们可以使用MySQ ...
- 选下拉框的的值对应上传相应的图片_excel表格下拉菜单调用对应数据,如何在excel中实现,选择下拉菜单某一项,该表格中就出现选项对应的数据?...
如何在excel中实现,选择下拉菜单某一项,该表格中就出现选项对应的数据? 选中这几列 打开菜单"数据"-"筛选"-"自动筛选"就是了. 另 ...
- excel中vlookup填充公式下拉怎么不好使了(如何在excel中vlookup为什么无法填充公式)...
在EXCEL表格里用VLOOKUP搜索数据时,为什么往下拉多了就不灵了呢? 注意查找的值与搜索区域的值格式统一. 搜索区域Table_array,地址引用要用绝对地址,比如区域A1:E100要写成$A ...
- java代码下划线是啥意思,在这个Java代码中,下划线实际上做了什么?
I just began to learn Java. My friend who is helping me study just sent me this and said 'figure thi ...
- linux下的ssh端口号修改,如何在 Linux 中更改 SSH 端口
默认情况下, SSH 侦听端口 22 . 更改默认 SSH 端口可以降低被自动攻击的风险,从而为服务器增加额外的安全层. 和更改默认端口相比,将防火墙配置为仅允许从特定主机访问端口 22 则更加简单和 ...
最新文章
- mysql linux 使用索引_正确使用MySQL索引
- dotNetCore操作Redis(含CentOS7哨兵模式部署)
- java中trim_java中string.trim()函数的作用实例及源码
- Centos 7 更改系统语言为中文
- [置顶] 金山云存储解决企业办公难题
- 小新air15为啥没人买_联想小新air15怎么样?身边的人用的好像比较少?
- centos 6.x下jira显示饼图乱码解决方法
- web标准设计工具:代码本地校验软件A Real Validator(附注册码)
- 正点原子STM32F103学习笔记(一)
- 51单片机c语言实训报告总结,单片机实训心得体会
- 设置eMMC和DDR的工作频率
- WEBI上取月的整周
- 求一个3*3的整形矩阵对角线元素之和
- 表达式的LenB(123程序设计ABC)的值是27吗
- 银河麒麟Kylin_s10_sp3安装Oracle11g(FS)(官方补丁认证)(亲测有效)
- android 仿快递步骤_Android实现仿美团、顺丰快递数据加载效果
- ## no data sources are configured to run this SQL and provide advanced code assistance.
- Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备)
- 【计算机毕业设计】外卖点餐系统
- 用遥控器的例子逐步介绍命令模式