当我们使用EditText键入输入值时,我希望在所有手机中将水平线放置在我的输入下方,如电话簿应用程序。
输入电话:___________
我希望我的输入放在这一行。如何使用EditText做到这一点?
答案 0 :(得分:2)
试试这个
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_marginTop="2dp">
<EditText
android:id="@+id/Prac"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Practice"
android:inputType="text"
android:textSize="12sp" />
</android.support.design.widget.TextInputLayout>
答案 1 :(得分:0)
您必须将EditText的宽度从match_parent
设置为代码下面的wrap_content
行
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
答案 2 :(得分:0)
您必须将宽度设置为match_parent
或固定宽度,例如100dp
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
答案 3 :(得分:0)
一种方法是,
使backgroundtint为黑色并设置提示,如下面的代码
<EditText
android:layout_width="200dp"
android:layout_height="wrap_content"
android:backgroundTint="#000000"
android:hint=" " />
其他方法是, 在editText下添加带有黑色背景的视图,editText的背景为空。
答案 4 :(得分:0)
当每个人回答设置宽度和高度设置为wrap_content时,这是正确的答案,但他们仍然是实现此目的的另一种方式,让我们来看看。
首先创建一个可绘制的文件(myline.xml)来创建该行。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="1dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape android:shape="rectangle">
<stroke
// You can change width according to your need
android:width="1dp"
android:color="#000000" />
</shape>
</item>
现在,在layout.xml中,在编辑文本背景中使用 myline.xml 。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enter Phone: "
android:textColor="#000"
android:textSize="18dp" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/myline"
android:textColor="#000"
android:textSize="18dp" />
</LinearLayout>
它的完成情况见下面截图中的输出。
答案 5 :(得分:0)
您可以尝试使用CustomEditText,如下面的代码:
package com.cj.myapplication;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.widget.EditText;
/**
* Created by E069099 on 7/20/2017.
*/
public class CustomEdiTextWithLine extends EditText {
private Rect rect;
private Paint paint;
public CustomEdiTextWithLine(Context context, AttributeSet attrs) {
super(context, attrs);
rect = new Rect();
paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GREEN);
paint.setStrokeWidth(2F);
paint.setStrokeCap(Paint.Cap.ROUND);
paint.setTextSize(20);
}
@Override
protected void onDraw(Canvas canvas) {
//start at the vertical center of the textview
float top = (getHeight() + getPaddingTop() - getPaddingBottom())/2;
//start at the left margin
float left = getPaddingLeft();
//we draw all the way to the right
float right = getWidth() -getPaddingRight();
//we want the line to be 2 pixel thick
float bottom = getHeight()- getPaddingBottom();
canvas.drawLine(0,bottom,right,bottom,paint);
super.onDraw(canvas);
}
}