实现概述文本字段在Android应用程序中输入lable文本

时间:2018-05-23 19:51:31

标签: android android-layout material-design

我想用float lable实现这种类型的输入文本布局,但问题是当我运行应用程序时它看起来不一样,并且标签显示在输入文本字段的上方。

enter image description here

但是,这是我的结果

enter image description here

我的代码是:

roundview.xml。

  <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape android:shape="rectangle">
                <solid android:color="#ffffff"/>
                <corners android:radius="10dp" />

                <stroke
                    android:width="2dp"
                    android:color="#3bbdfa"
                    />
            </shape>
        </item>
    </selector>

<android.support.design.widget.TextInputLayout
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:errorEnabled="true">

    <android.support.design.widget.TextInputEditText
        android:id="@+id/edittxt"
        android:layout_width="match_parent"
        android:layout_height="130dp"
        android:background="@drawable/roundview"
        android:fadeScrollbars="false"
        android:fadingEdge="vertical"
        android:foregroundGravity="fill_vertical"
        android:hint="name"
        android:isScrollContainer="false"
        android:requiresFadingEdge="vertical"
        android:singleLine="false"
        android:visibility="visible" />

</android.support.design.widget.TextInputLayout>

我按照https://material.io/design进行文字字段设计,但我遇到了这个问题。谢谢

4 个答案:

答案 0 :(得分:6)

可以通过在Widget.MaterialComponents.TextInputLayout.OutlinedBox上应用TextInputLayout.样式来完成

<android.support.design.widget.TextInputLayout
        android:id="@+id/name_text_input"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:errorEnabled="true">
        <android.support.design.widget.TextInputEditText
            android:id="@+id/name_edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Name" />
    </android.support.design.widget.TextInputLayout>

You can check this answer which also has a link to an example.

答案 1 :(得分:1)

  

概述框

概述文本字段具有描边边框,并且强调较少。要使用大纲文本字段,请将以下样式应用于TextInputLayout:

style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"

参考:TextInputLayout

答案 2 :(得分:0)

使用android.support.design.widget.TextInputLayout无法实现。您必须创建一个自定义类,可以在编辑文本周围绘制这种边框,记住提示文本,如果您的提示文本是常量,您可以使用png作为背景

答案 3 :(得分:-1)

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"
    android:layout_marginTop="100dp" >

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/text"
        android:inputType="text"
        android:importantForAutofill="no"
        tools:ignore="LabelFor" />

 </com.google.android.material.textfield.TextInputLayout>