Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式设置色调后,EditText可绘制隐藏_Android_Android Layout_Android Edittext_Kotlin - Fatal编程技术网

Android 以编程方式设置色调后,EditText可绘制隐藏

Android 以编程方式设置色调后,EditText可绘制隐藏,android,android-layout,android-edittext,kotlin,Android,Android Layout,Android Edittext,Kotlin,我的版面中有两个EditText。我正在使用TextInputLayout并添加了drawableLeft,现在我正在尝试更改其色调,这对于用户名字段来说效果很好,但它隐藏了密码字段的左侧drawable图标。下面是代码,请指导我做错了什么 <LinearLayout android:layout_width="@dimen/margin_300" android:layout_height="wrap_content" android:gravity="cente

我的版面中有两个
EditText
。我正在使用
TextInputLayout
并添加了
drawableLeft
,现在我正在尝试更改其色调,这对于用户名字段来说效果很好,但它隐藏了密码字段的左侧drawable图标。下面是代码,请指导我做错了什么

<LinearLayout
    android:layout_width="@dimen/margin_300"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:orientation="vertical">



<android.support.design.widget.TextInputLayout
                                android:id="@+id/userIDLayout"
                                android:layout_width="match_parent"
                                android:layout_height="match_parent"
                                android:layout_toEndOf="@+id/appCompatImageView4">

                                <android.support.v7.widget.AppCompatEditText
                                    android:id="@+id/edit_user_id"
                                    android:layout_width="match_parent"
                                    android:layout_height="wrap_content"
                                    android:drawableLeft="@drawable/ic_user_login"
                                    android:drawablePadding="@dimen/margin_10"
                                    android:drawableStart="@drawable/ic_user_login"
                                    android:drawableTint="@color/colorPrimaryDark"
                                    android:hint="@string/txt_user_hint"
                                    android:imeOptions="flagNoExtractUi|actionNext"
                                    android:inputType="number"
                                    android:maxLines="1"
                                    android:textSize="@dimen/txt_size_16" />
                            </android.support.design.widget.TextInputLayout>


                            <android.support.design.widget.TextInputLayout
                                android:id="@+id/userPasswordLayout"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:layout_toEndOf="@+id/appCompatImageView5"
                                app:passwordToggleEnabled="true">

                                <android.support.design.widget.TextInputEditText
                                    android:id="@+id/edit_user_password"
                                    android:layout_width="match_parent"
                                    android:layout_height="wrap_content"
                                    android:drawableLeft="@drawable/ic_user_password"
                                    android:drawablePadding="@dimen/margin_10"
                                    android:drawableStart="@drawable/ic_user_password"
                                    android:drawableTint="@color/colorPrimaryDark"
                                    android:hint="@string/txt_pin_hint"
                                    android:imeOptions="flagNoExtractUi|actionDone"
                                    android:inputType="numberPassword"
                                    android:maxLength="4"
                                    android:maxLines="1"
                                    android:textSize="@dimen/txt_size_16" />
                            </android.support.design.widget.TextInputLayout>

                        </LinearLayout>

问题在于
setCompoundDrawablesWithIntrinsicBounds
将其更改为
setCompoundDrawablesRelativeWithIntrinsicBounds
,它将开始出现。

您可以尝试删除android:inputType=“numberPassword”吗从您的密码编辑文本中,如果它有效,那么我可以建议您修复它的工作方式,如果我删除
app:passwordToggleEnabled=“true”
。我测试过了。我猜这个问题是因为密码问题而发生的。不确定应用程序:“属性”可以在运行时设置,也可以在运行时设置,但它可以帮助您解决问题。如果您可以详细说明的话,您可以考虑。尝试调用
inValidate()
视图
。此解决方案解决了我试图通过编程方式设置可绘制的问题(没有色调)自动完成文本视图。谢谢
fun changeEditTextDrawableColor(colorId: Int, drawableId: Int, resource: EditText) {
    var drawable = resources.getDrawable(drawableId)
    drawable = DrawableCompat.wrap(drawable)
    DrawableCompat.setTint(drawable, resources.getColor(colorId))
    DrawableCompat.setTintMode(drawable, PorterDuff.Mode.SRC_IN)

    resource!!.setCompoundDrawablesWithIntrinsicBounds(drawable, null, null, null)
}