在android应用程序中实现带标签文本的概述文本字段输入

Posted

技术标签:

【中文标题】在android应用程序中实现带标签文本的概述文本字段输入【英文标题】:Implementation Outlined text field Input with lable text in android application 【发布时间】:2018-11-02 22:03:00 【问题描述】:

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

但是,这是我的结果

我的代码是:

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:
                    android:color="#3bbdfa"
                    />
            </shape>
        </item>
    </selector>

<android.support.design.widget.TextInputLayout
    android:id="@+id/text"
    android:layout_
    android:layout_
    app:errorEnabled="true">

    <android.support.design.widget.TextInputEditText
        android:id="@+id/edittxt"
        android:layout_
        android:layout_
        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 进行文本字段设计,但我遇到了这个问题。谢谢

【问题讨论】:

如果能实现请更新 【参考方案1】:

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

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

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

【讨论】:

为此你需要迁移到android X 我不确定我在使用它时是否做到了。 这不需要 AndroidX,它同时在旧支持库的 com.android.support:design:28.x.x 包中可用。【参考方案2】:

大纲框

大纲文本字段有一个描边边框并且不太强调。要使用大纲文本字段,请将以下样式应用于您的 TextInputLayout:

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

参考:TextInputLayout

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

看看TextField Widgets。

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/textField"
    android:layout_
    android:layout_
    android:hint="@string/label">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_
        android:layout_
    />

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

【讨论】:

【参考方案5】:
<com.google.android.material.textfield.TextInputLayout
    android:layout_
    android:layout_
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_marginStart="20dp"
    android:layout_marginEnd="20dp"
    android:layout_marginTop="100dp" >

    <EditText
        android:layout_
        android:layout_
        android:hint="@string/text"
        android:inputType="text"
        android:importantForAutofill="no"
        tools:ignore="LabelFor" />

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

【讨论】:

以上是关于在android应用程序中实现带标签文本的概述文本字段输入的主要内容,如果未能解决你的问题,请参考以下文章

怎样在Delphi中实现在运行中实现带参数的存储过程?

[译] 在Web API 2 中实现带JSON的Patch请求

jsp中实现带滚动条的table表格

wemall app商城源码中实现带图片和checkbox的listview

如何用Python编写代码在Word中实现带公式计算过程的计算书?

聊技术在Android中实现自适应文本大小显示