标签: android-textinputlayout

将基线与TextView进行对齐,TextView包含在TextInputLayout中

我想将TextView"Deficient"的基线与EditText"10000"的基线对齐.他们都在里面<android.support.percent.PercentRelativeLayout>

在此输入图像描述

我尝试了以下,但无法让它工作.

<android.support.percent.PercentRelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.design.widget.TextInputLayout
        android:id="@+id/textInputLayout_soil_nitrogen"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        app:layout_widthPercent="63%">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Enter N of soil"
            tools:text="10000" />

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toEndOf="@id/textInputLayout_soil_nitrogen"
        android:layout_toRightOf="@id/textInputLayout_soil_nitrogen"
        app:layout_widthPercent="37%"
        tools:text="Deficient" />

</android.support.percent.PercentRelativeLayout>
Run Code Online (Sandbox Code Playgroud)

给TextView类型提供20dp的顶部填充可以解决问题,但是对齐它们的基线会很不错.在这种情况下,这甚至可能吗?

我删除了textAppearance和id属性,顺便说一句.

android android-layout android-textinputlayout android-percent-library

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

Android中的InputTextLayout setError()方法无法正常工作

我设计了一个自定义的InputTextLayout,它包含一个自定义的Edittext.这个自定义的Edittext扩展了"AppCompatEdittext".我的MainActivity也扩展了AppCompatActivity.但是我仍然无法使用TextInputLayout显示错误消息.以下是各种文件的代码片段.

main.xml中

<android.support.design.widget.TextInputLayout
            android:id="@+id/last_name_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/first_name_layout"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_marginTop="12dp"
            android:background="@drawable/grey_button_normal"
            android:hint="Last name"
            android:minHeight="48dp"
            android:paddingTop="3dp"
            android:theme="@style/TextLabel">

            <com.feebite.widgets.StyleableEditText
                android:id="@+id/lastname_edittext"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_gravity="center_vertical"
                android:background="@android:color/transparent"
                android:gravity="center_vertical"
                android:minHeight="48dp"
                android:nextFocusDown="@+id/email_edittext"
                android:paddingBottom="10dp"
                android:paddingLeft="15dp"
                android:singleLine="true"
                android:textColor="@color/darkish_grey"
                android:textColorHint="@color/darkish_grey"
                android:textCursorDrawable="@null"
                android:textSize="18sp" />

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

MainActivity.java

mLastNameLayout = (TextInputLayout) findViewById(R.id.last_name_layout);
 mLastNameLayout.setHint("Last name");
mLastNameLayout.setErrorEnabled(true);
Run Code Online (Sandbox Code Playgroud)

styles.xml中的自定义主题

<style name="TextLabel" parent="TextAppearance.AppCompat">
        <!-- Hint color and label color in FALSE state -->
        <item name="android:textColorHint">@color/darkish_grey</item>
        <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
        <item name="colorAccent">@color/darkish_grey</item>
        <item name="colorControlNormal">@color/darkish_grey</item>
        <item name="colorControlActivated">@color/dark_pink</item>
    </style> …
Run Code Online (Sandbox Code Playgroud)

android android-textinputlayout

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

TextInputLayout设置错误没有消息?

是否可以在文本输入布局上设置错误而不显示任何错误消息(我已在其他地方执行此操作)?

textinputlayout.setError("");
Run Code Online (Sandbox Code Playgroud)

不幸的是不行.

我基本上需要的是textInputLayout将其线条颜色更改为红色,但我需要以编程方式进行.谢谢

android android-textinputlayout

10
推荐指数
3
解决办法
1581
查看次数

OutlinedBox TextInputLayout和重力中心?

如何使用TextInputLayout实现居中的新OutlinedBox样式?

当前行为:

左和中

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout2"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="left"
    >
    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:hint="hint"
        />
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
    android:id="@+id/textInputLayout"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    >
    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:hint="hint2"
        />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我用com.android.support:design:28.0.0

有什么想法可以实现以外观为中心的TextInputEditText?

android android-support-library android-textinputlayout material-components material-components-android

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

为什么在TextInputLayout中找不到属性app:endIconMode?

您好,我正在使用androidx库创建一个应用程序,但是当我尝试添加一个开关来显示或隐藏具有app:endIconMode属性的TextInputEditText中的密码时,出现错误错误:找不到属性endIconMode。

这是我的TextInputLayout和TextInputEditText

<com.google.android.material.textfield.TextInputLayout
            android:id="@+id/password_text_input_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="password"
            app:endIconMode="password_toggle"
            app:layout_constraintTop_toBottomOf="@+id/user_text_input_layout"
            style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">

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

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

这些也是我在gradle中的依赖

implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'com.google.android.material:material:1.0.0'
Run Code Online (Sandbox Code Playgroud)

我不确定我缺少什么,也许是依赖关系?据我在文档中阅读的内容,除了材料之外,不需要任何额外的依赖。

谢谢

android android-textinputlayout androidx

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

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
查看次数

android:TextInputLayout隐藏了子EditText的drawableRight

我总是更新库更新,这就是它的结果.

在build.gradle(Project:xxx)中:

classpath 'com.android.tools.build:gradle:2.2.0-beta1'
Run Code Online (Sandbox Code Playgroud)

在build.gradle中(模块:app)

compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:design:24.2.0'
Run Code Online (Sandbox Code Playgroud)

并输入密码字段如下:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <android.support.v7.widget.AppCompatEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

Taadaa ...我的密码字段现在如下所示:

在此输入图像描述

你也可以随便去EditText.

但是,此更新中存在一些问题.

问题: 如果我在EditText中放置任何drawableRight,它什么都不显示.TextInputLayout还具有禁用切换功能的属性.我也是这样做的,但没有成功:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:passwordToggleEnabled="false">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawableRight="@drawable/ic_alarm_on_black_24dp"
        android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我.

android android-edittext android-design-library android-textinputlayout

9
推荐指数
1
解决办法
1362
查看次数

问题:在android中更改未聚焦的TextInputLayout的边框颜色或框行程

我有一个非常具体的问题,当TextInputLayout没有聚焦时,它会改变TextInputLayout文本框的轮廓.我似乎无法找到一个属性来更改我的"未聚焦"文本框边框的颜色.

这是我正在尝试做的一个视觉示例:

此(文本框)的颜色:边框不是白色.目前它没有集中精力.点击它后,它变成白色:

我不知道我需要改变什么,似乎没有一个属性可以改变它.

我也使用材料设计文本输入布局样式,虽然我不知道这是否会影响它.

这是我的文本框的xml代码:

 <other layouts ... >
     <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:layout_gravity="bottom"
            android:layout_margin="5dp"
            android:background="@drawable/item_recycler_view">

            <android.support.design.widget.TextInputLayout
                android:id="@+id/dialog_text_input_layout"
                style="@style/Widget.AppTheme.TextInputLayoutList"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Quick Add..."
                android:textColorHint="@color/colorWhite"
                app:boxStrokeColor="@color/colorWhite"
                app:errorEnabled="true"
                >

                <android.support.design.widget.TextInputEditText
                    android:id="@+id/dialog_edit_text"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:inputType="text"
                    android:maxLines="1"
                    android:textColor="@color/colorWhite"
                    android:textSize="14sp" />
            </android.support.design.widget.TextInputLayout>
        </RelativeLayout>
 </other layouts...>
Run Code Online (Sandbox Code Playgroud)

以下是我用于此的样式:

<style name="TextAppearance.AppTheme.TextInputLayout.HintTextAlt" parent="TextAppearance.MaterialComponents.Subtitle2">
    <item name="android:textColor">@color/colorWhite</item>
</style>

<style name="Widget.AppTheme.TextInputLayoutList" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
    <item name="hintTextAppearance">@style/TextAppearance.AppTheme.TextInputLayout.HintTextAlt</item>
    <item name="boxStrokeColor">@color/colorWhite</item>
    <item name="boxCornerRadiusBottomEnd">5dp</item>
    <item name="boxCornerRadiusBottomStart">5dp</item>
    <item name="boxCornerRadiusTopEnd">5dp</item>
    <item name="boxCornerRadiusTopStart">5dp</item>
    <item name="android:layout_margin">5dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

谢谢,欢迎任何帮助或建议!

android textview android-textattributes android-textinputlayout

9
推荐指数
4
解决办法
5409
查看次数

TextInputEditText 的 OutlinedBox 不起作用

我正在登录屏幕上工作,我想在其中使用以下视图实现材料编辑文本:

在此处输入图片说明

以下是我的代码:

<com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        style="@style/ThemeOverlay.MaterialComponents.TextInputEditText.OutlinedBox"
        android:layout_height="wrap_content">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="This is Hint"/>

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

但是 OutlinedBox 没有出现。这是它的外观:

在此处输入图片说明

请帮忙。

android android-edittext material-design android-textinputlayout androidx

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

如何更改 TextInputLayout 中密码切换的颜色?

TextInputLayout如果EditText聚焦与否,我需要更改密码切换的颜色。我已经这样做了,但它不起作用。颜色总是等于浅灰色(从状态聚焦 = 假)

布局

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:passwordToggleEnabled="true"
        app:passwordToggleDrawable="@drawable/password_toggle_selector"
        app:passwordToggleTint="@color/color_password_toggle">

    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@null"
        android:inputType="textPassword" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

color_password_toggle

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/color_green" android:state_checked="true"  />
    <item android:color="@color/color_grey" android:state_focused="true" />
    <item android:color="@color/color_light_grey" android:state_focused="false" />
Run Code Online (Sandbox Code Playgroud)

password_toggle_selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/ic_eye" android:state_checked="true />
    <item android:drawable="@drawable/ic_eye_off" />
Run Code Online (Sandbox Code Playgroud)

android material-design android-textinputlayout material-components material-components-android

9
推荐指数
3
解决办法
6913
查看次数