EditText和水平线

时间:2017-07-20 10:15:19

标签: android android-edittext

当我们使用EditText键入输入值时,我希望在所有手机中将水平线放置在我的输入下方,如电话簿应用程序。

输入电话:___________

我希望我的输入放在这一行。如何使用EditText做到这一点?

6 个答案:

答案 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>

它的完成情况见下面截图中的输出。

enter image description here

答案 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);
    }
}