标签: android-textinputedittext

从 TextInputEditText 中删除下划线

我有一个 android 屏幕,它接收用户的电子邮件。下面是代码片段,我想删除出现在文本下方的下划线。

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="8dp"
    android:hint="@string/email"
    android:textColorHint="@color/blueBackground"
    app:boxBackgroundColor="@color/input_background"
    app:boxCornerRadiusBottomEnd="20dp"
    app:boxCornerRadiusBottomStart="20dp"
    app:boxCornerRadiusTopEnd="20dp"
    app:boxCornerRadiusTopStart="20dp"
    app:endIconMode="clear_text"
    app:endIconTint="@color/blueBackground"
    app:hintTextColor="@color/blueBackground">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/blueBackground"
        android:textSize="18sp"
        android:layout_margin="8dp" />

</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我曾尝试android:background="@null"

<item name="colorControlNormal">@android:color/transparent</item> <item name="colorControlActivated">@android:color/transparent</item>

但它不起作用。

编辑文本

android android-textinputlayout android-textinputedittext

29
推荐指数
10
解决办法
2万
查看次数

Android 中的 TextInputLayout 总是有一个默认背景

我有TextInputLayout并且TextInputEditText喜欢这个

<com.google.android.material.textfield.TextInputLayout
            android:id="@+id/loginUsernameText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/text_input_margin_left_right"
            android:layout_marginRight="@dimen/text_input_margin_left_right"
            android:layout_marginTop="@dimen/text_input_margin_top_bottom"
            android:hint="@string/username"
            android:layout_below="@id/loginButtonLogin">

        <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/loginUsername"
                android:layout_width="match_parent"
                android:padding="5dp"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"/>

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

    <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/loginPasswordText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="@dimen/text_input_margin_left_right"
            android:layout_marginRight="@dimen/text_input_margin_left_right"
            android:layout_marginTop="@dimen/text_input_margin_top_bottom"
            android:hint="@string/password"
            android:layout_below="@id/loginUsernameText">

        <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/loginPassword"
                android:layout_width="match_parent"
                android:padding="5dp"
                android:layout_height="wrap_content"
                android:inputType="textPassword"/>

    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的styles.xml 文件

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

    <style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance">
        <item …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-textinputlayout android-textinputedittext

23
推荐指数
5
解决办法
2万
查看次数

使用TextInputLayout时出现InflateException

我正在尝试使用Material Design中的TextInputEditText(https://github.com/material-components/material-components-android/blob/master/docs/components/TextInputLayout.md),我得到了运行时异常.

这是运行日志的一部分:

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.example.grigori.materialtextedit, PID: 12036
              java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.grigori.materialtextedit/com.example.grigori.materialtextedit.MainActivity}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class com.google.android.material.textfield.TextInputLayout
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
                  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
                  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
                  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
                  at android.os.Handler.dispatchMessage(Handler.java:106)
                  at android.os.Looper.loop(Looper.java:193)
                  at android.app.ActivityThread.main(ActivityThread.java:6669)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
               Caused by: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class com.google.android.material.textfield.TextInputLayout
               Caused by: android.view.InflateException: Binary …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-textinputlayout android-textinputedittext

14
推荐指数
10
解决办法
1万
查看次数

Android TextInputLayout密码切换在新支持库中不可见

我已编译了以下设计库,并在右侧显示密码HIDE/SHOW按钮EditText

编译'com.android.support:design:24.2.1'

<android.support.design.widget.TextInputLayout
    android:id="@+id/login_password_text_input_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/spacing_normal">

    <android.support.v7.widget.AppCompatEditText
        android:id="@+id/login_password_edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawablePadding="@dimen/spacing_micro"
        android:hint="@string/prompt_password"
        android:imeActionId="@+id/login"
        android:imeActionLabel="@string/action_sign_in_short"
        android:imeOptions="actionUnspecified"
        android:inputType="textPassword"
        android:maxLines="1"
        android:text="password" />

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

喜欢:

在此输入图像描述

更新后的

编译'com.android.support:design:25.0.1'

它不可见,为什么?有没有错误?

请指导.

android android-edittext android-textinputlayout android-textinputedittext

11
推荐指数
2
解决办法
1万
查看次数

EditText光标和指针颜色为android 5.0以下

我试图更改EditText光标指针颜色(从原色蓝色到白色),但没有解决方案适用于我的项目.我试图开发演示项目,其中相同的代码工作正常.这段代码适用于> = android 5.0

我不知道,我的值会覆盖哪个属性.我有两个选项可以解决这个问题: -
1.找到控制该颜色值的属性.
2.页面加载时(在onViewCreated中)通过java代码更改颜色值.

请建议如何解决此问题.

styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="my_text_layout_style">

        <item name="android:textColor">#FFF</item>
        <item name="android:textColorHint">#FFF</item>

        <item name="colorAccent">#FFF</item>
        <item name="colorControlNormal">#FFF</item>
        <item name="colorControlActivated">#FFF</item>

        <item name="colorControlHighlight">#FFF</item>

    </style>



    <style name="my_edit_text_style">
        <item name="colorAccent">#FFF</item>
        <item name="android:editTextStyle">@style/MyEditTextStyle</item>
    </style>

    <style name="MyEditTextStyle" parent="Widget.AppCompat.EditText" />
</resources>
Run Code Online (Sandbox Code Playgroud)

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:background="@color/base_disable_btn_bg_color"
    android:orientation="vertical">

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:hint="just a hint"
        app:hintTextAppearance="@style/my_text_layout_style"
        android:theme="@style/my_text_layout_style"
        android:layout_height="wrap_content">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:theme="@style/my_edit_text_style"
            android:layout_height="wrap_content" />

    </android.support.design.widget.TextInputLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

试图以编程方式添加视图但没有成功

AppLinearLayout appLinearLayout = (AppLinearLayout) view.findViewById(R.id.some_id);
EditText editText = new EditText(new ContextThemeWrapper(getContext(), …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-textinputedittext

10
推荐指数
1
解决办法
1566
查看次数

TextInputLayout 移动提示标签并在聚焦时更改其背景颜色

我正在尝试自定义材料TextInpuLayout.OutlinedBoxTextInputEditText.

我目前的状态如下图

在此处输入图片说明

我想要做的是删除提示标签的背景,以便它不会创建丑陋的切口。像这样:

在此处输入图片说明

或者,如果不可能将标签移动到输入上方也可以解决问题:

在此处输入图片说明

如果使用样式可以实现这一点就好了,这样我也可以轻松地将其应用于其他文本输入元素。我对android很陌生,所以请体谅。

这是样式的代码:

<style name="MyTheme" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
    <item name="android:textSize">14sp</item>
    <item name="boxCornerRadiusTopStart">@dimen/textInputCornerRadius</item>
    <item name="boxCornerRadiusTopEnd">@dimen/textInputCornerRadius</item>
    <item name="boxCornerRadiusBottomStart">@dimen/textInputCornerRadius</item>
    <item name="boxCornerRadiusBottomEnd">@dimen/textInputCornerRadius</item>
    <item name="boxBackgroundColor">@color/primaryDarkColorBackground</item>
    <item name="boxStrokeColor">@color/text_input_box_stroke</item>
</style>
<style name="EditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="android:background">@null</item>
    <item name="android:paddingStart">30dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是我在布局中定义输入的方式:

<com.google.android.material.textfield.TextInputLayout
        android:id="@+id/username_layout"
        style="@style/MyTheme"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="48dp"
        android:layout_marginEnd="48dp"
        android:hint="@string/email_or_username"
        app:boxBackgroundMode="outline"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.10">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/username"
            style="@style/EditTextStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />
    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

android android-textinputlayout android-textinputedittext material-components material-components-android

10
推荐指数
1
解决办法
1839
查看次数

更改TextInputLayout标签TextView的背景颜色

所以我试图改变 上标签的背景颜色TextInputLayout/EditText。大多数其他问题似乎都涉及文本的颜色,但我观察到的标签的默认功能是“OutlinedBox”样式上的标签背景与层次结构中其上方布局的背景颜色相匹配:

在此输入图像描述

在此输入图像描述

正如你所看到的,在前。1、上面的布局TextInputLayout是偏灰色的,所以LabelTextView 背景也变成灰色的。

在前。2、上面的布局TextInputLayout是白色的,所以Label Text背景也变成白色。因为这是在没有我任何输入的情况下发生的变化(它没有使用像“colorAccent”这样的颜色,它全面应用,而是根据布局背景颜色使用不同的颜色)。

我想找出的是,是否有一个我可以维护/编辑的颜色属性,最好是通过样式,这将允许我选择该颜色,而不是将其默认为层次结构中其上方的布局所具有的任何颜色?

我尝试在样式中设置各种颜色来尝试覆盖默认行为,但尚未找到这样做的颜色。

这是金额的 TextInputLayout/EditText。

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/tilAmount"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
    android:layout_width="0dp"
    android:layout_height="55dp"
    android:layout_marginRight="@dimen/margin_between_boxes"
    android:layout_weight="1"
    android:hint="@string/et_amount"
    app:boxBackgroundColor="@color/white"
    app:boxStrokeColor="@color/editText_background"
    app:boxStrokeWidth="3dp"
    app:hintTextAppearance="@style/TextLabel">


        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/etAmount"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fontFamily="@font/neue_haas_grotesk_display_regular"
            android:inputType="number"
            android:maxLength="7"
            android:paddingLeft="13dp"
            android:textAlignment="viewStart"
            android:textColorHint="@android:color/black"
            android:textSize="14sp"
            android:layout_gravity="start" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

这是用于hintTextAppearance 的样式

<style name="TextLabel" parent="TextAppearance.AppCompat">
    <!-- Hint color and label color in FALSE state -->
    <item name="android:textColorHint">@color/label_text</item>
    <item name="android:textColor">@color/label_text</item>
    <item name="android:textSize">12sp</item>
    <!-- Label color in TRUE state and bar color FALSE and …
Run Code Online (Sandbox Code Playgroud)

java android label android-textinputlayout android-textinputedittext

7
推荐指数
0
解决办法
1479
查看次数

React Native中的图像键盘支持

Android文档指出:

借助Android 7.1(API级别25),Android SDK包含了Commit Content API,该API为IME提供了一种通用方式,可将图像和其他丰富内容直接发送到应用程序中的文本编辑器。

但是,当我使用React Native的TextInput组件并从Android的键盘中选择一个GIF时,会收到以下消息(请参见屏幕截图):

此文本字段不支持从键盘插入GIF。

此文本字段不支持从键盘插入GIF。

我如何在React Native应用程序中添加对此功能的支持?理想情况下,我想要一个提供回调以处理接收的URI的组件commitContent()

android android-softkeyboard react-native android-7.1-nougat android-textinputedittext

6
推荐指数
1
解决办法
288
查看次数

MaterialComponents.TextInputLayout.OutlinedBox 它不能正常工作 boxBackgroundColor

我用材料。我将为 TextInputLayout 使用一种颜色作为背景,但类似于下面的颜色!提示背景未更改。我使用了样式并想进行更改,但没有奏效。在布局本身中,我尝试再次应用更改!如何解决这个问题?

笔记

图片中标签用户名的背景不透明,它覆盖了一些TextInputEditText

在此处输入图片说明

build.gradle 中

implementation 'com.google.android.material:material:1.1.0'
Run Code Online (Sandbox Code Playgroud)

风格

 <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="textAppearanceSubtitle1">@style/TextAppearance.App.Subtitle1</item>
        <item name="textAppearanceCaption">@style/TextAppearance.App.Caption</item>
        <item name="shapeAppearanceSmallComponent">@style/ShapeAppearance.App.SmallComponent</item>
    </style>

    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.MaterialComponents.Dark.ActionBar"/>

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.MaterialComponents.Light"/>


    <style name="TextAppearance.App.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
        <item name="colorControlActivated">@color/white</item>
        <item name="android:colorControlActivated">@color/white</item>
    </style>

    <style name="TextAppearance.App.Caption" parent="TextAppearance.MaterialComponents.Caption">
        <item name="android:textColorTertiary">@color/white</item>
        <item name="android:textColorTertiaryInverse">@color/white</item>
        <item name="colorControlActivated">@color/white</item>
        <item name="android:colorControlActivated">@color/white</item>
    </style>

    <style …
Run Code Online (Sandbox Code Playgroud)

android material-design android-textinputlayout android-textinputedittext

6
推荐指数
1
解决办法
3214
查看次数

使用数据绑定时 TextInputLayout 提示不起作用

我将数据绑定与 TextInputLayout/TextInputEditText 组合一起使用,如 xml 中所示。

<com.google.android.material.textfield.TextInputLayout
                android:id="@+id/lastname_input_layout"
                style="@style/TextInputLayout"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                app:endIconMode="clear_text"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/firstname_input_layout"
                app:visible="@{viewModel.showFields}">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/lastname_input"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/lastname"
                    android:inputType="textCapWords"
                    android:text="@={viewModel.lastName}"
                    android:textAppearance="@style/TextAppearance.Input" />

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

            <com.google.android.material.textfield.TextInputLayout
                android:id="@+id/email_input_layout"
                style="@style/TextInputLayout"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                app:endIconMode="clear_text"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/lastname_input_layout"
                app:visible="@{viewModel.showFields}">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/email_input"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@{viewModel.watchMediaTextHint}"
                    android:inputType="@{viewModel.watchMediaInputType}"
                    android:text="@={viewModel.mediaText}"
                    android:textAppearance="@style/TextAppearance.Input" />

            </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,这两个字段在理论上是相同的,唯一的区别是其中一个字段具有hint通过字符串资源给出的文本,另一个字段具有数据绑定。两者具有相同的样式、文本外观等,但是使用TextInputEditText数据绑定的提示具有不同的颜色。此外,当视图获得焦点时,标签不会像第一个字段那样动画化。

使用字符串资源设置提示可以使此行为恢复正常,对于为什么会发生这种异常有什么想法吗?我更愿意使用数据绑定而不是编程解决方案来解决这个问题。

谢谢。

data-binding android viewmodel android-textinputedittext

6
推荐指数
1
解决办法
1430
查看次数