我的EditText
应用中有Android
:
<EditText
android:id="@+id/txtName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="15dp"
android:text=""
android:hint="Name"
android:width="150dp"
android:height="50dp"
android:background="@drawable/rounded_corners" />
当我在上面输入内容时,它的下划线。
我知道这是因为Android的自动建议而且可以通过android:inputType="textNoSuggestions"
来解决,所以请避免回答只是告诉我我所知道的。
问题在我将上面添加的属性添加到EditText
时出现,因为它会更改其形式。例如,如果EditText
喜欢它:
┌───────────────────────────────────────────┐
| |
└───────────────────────────────────────────┘
当我将属性android:inputType="textNoSuggestions"
的形式更改添加到这样的内容时:
┌───────────────────────────────────────────┐
└───────────────────────────────────────────┘
在布局的底部出现一个白色的块(可能是因为EditText
是白色的,我想是这样),其大小或多或少是EditText
已经改变的(第二个) )但在这个块我无法互动。像这样:
┌───────────────────────────────────────────┐
| LAYOUT |
| |
| //EditText changed |
| ┌──────────────────────────────────┐ |
| └──────────────────────────────────┘ |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| //Block at the end of the Layout |
├───────────────────────────────────────────┤
└───────────────────────────────────────────┘
当我在android:inputType="textNoSuggestions"
上手动输入单词时,使用属性EditText
它们不是下划线但是当我使用键盘的Swype
功能时,它们会再次显示下划线。
另外,如果它在Layout的底部创建一个块,我不希望这个属性更改EditText
。
因此,我想知道:
1)是否可以完全删除输入EditText
的字词的下划线?无论是Swype
还是其他任何方式都是手动无关紧要。
2)如何删除EditText
字词的下划线但不更改EditText
或我的Layout
上出现了某个块?
编辑:在这里,我添加了两张照片,您可以在其中看到问题:
1)在添加属性之前。
2)添加属性后。
编辑2 :这是我的rounded_corners
背景:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<stroke
android:width="1dp"
android:color="#FFFFFFFF" />
<solid android:color="#FFFFFFFF" />
<padding
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners android:radius="5dp"/>
</shape>
提前致谢!
答案 0 :(得分:1)
我认为EditText
上缺少顶部/底部填充是由两个因素引起的:
1 - 原始的EditText
有一个9-patch
背景图片,里面有填充。我不太可能知道你的rounded_corners
drawable是如何构建的,但我倾向于相信这不是一个9补丁图像(或者如果它是,没有内置填充)
2 - 我认为EditText
在文本周围分配一些空间,以便它可以显示某些额外的元素。例如,文本下方的一行,在启用建议模式时使用。当建议模式关闭时,不再需要该空间。
这两个中的任何一个都会在文本上保留一些填充。把他们带走,没有填充(当然,我们不计算EditText
上任何明确的顶部和底部填充集。)
因此解决方案是将背景图像构建为9-patch并在其中包含填充(您可以将原始背景作为示例)或明确设置一些填充。
对于屏幕底部的白色区域 - 您的黄色布局是否设置为wrap_content
高度?如果是,请将其设置为match_parent
,以便不依赖于所包含元素的高度。
答案 1 :(得分:1)
解决问题的解决方案EditText
最后,我找到了解决我EditText
问题的解决方案。我把它放在这里因为我觉得它对另一个人有帮助。我将把问题分成两个解决方案。
首先,如何删除布局底部的白色块。
正如N.T
所说(谢谢!),我只需要将我的黄色版面android:layout_height
更改为match_parent
。
第二个,如何让EditText
不要如此减少。
我只需删除这些属性:
android:width="150dp"
android:height="50dp"
并添加其他内容:
android:inputType="textCapSentences|textMultiLine|textNoSuggestions"
android:minLines="2"
现在全部EditText
如下:
<EditText
android:id="@+id/txtName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="15dp"
android:text=""
android:hint="Name"
android:inputType="textCapSentences|textMultiLine|textNoSuggestions"
android:minLines="2"
android:background="@drawable/rounded_corners" />
完全停止下线的解决方案
您必须将textVisiblePassword
添加到inputType
。使用此值,您只能逐个输入字母,因此下划线不会出现。
它不允许您使用Swype
模式键入单词,因此下划线永远不会出现。
inputType
必须像:
android:inputType="textCapSentences|textMultiLine|textNoSuggestions|textVisiblePassword"