Articles of android textinputlayout

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

我已经编译了下面的devise库,并在EditText右边显示了密码HIDE / SHOWbutton 编译'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> 喜欢: 更新到之后 编译'com.android.support:design:25.0.1' 它不可见,为什么? 有没有错误? 请指导。

删除错误消息时,不会删除TextInputLayout的错误视图

我有一个垂直线性布局与一些input字段。 使用TextInputLayout我得到一个很好的标签和内置的错误消息stream。 我的问题是当我添加和删除错误消息。 如果我添加一个错误消息,它位于编辑文本下面,一切看起来不错。 如果我用setError(null)删除错误消息,则消息被删除,但空间仍然存在。 这显然是每个Google的devise(请参阅https://code.google.com/p/android/issues/detail?id=176005 )。 我非常喜欢这个空间,因为它使UI看起来非常错误。 如果我做.setErrorEnabled(false)视图被删除,一切再次正常。 但是,如果用户更改数据,我做了另一个setError错误消息不显示(只有编辑文本行是红色的)。

我可以为android-support-design小部件设置应用全局自定义样式吗?

我想为Android支持devise(如AppBarLayout,TextInputLayout,FAB …)中的一些小部件定义自定义样式,并将这些样式设置为我的项目的默认样式,就像我可以使用EditText和其他系统小部件一样。 举个例子: <style name="Theme.MyApp" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:editTextStyle">@style/Theme.MyApp.EditText</item> </style> <style name="Theme.MyApp.EditText" parent="Widget.AppCompat.EditText"> <item name="android:textColor">@color/my_awsome_edittext_color</item> <item name="android:layout_height">wrap_content</item> </style> 我目前的问题是设置为一个特定的活动,它有自己的主题的AppBarLayout高度=“0dp”。 检查Android支持deviseAppBarLayout源代码,我发现它有一个名为Widget.Design.AppBarLayout的主题,所以我做了: <style name="Theme.MyApp.AppBarLayout" parent="Widget.Design.AppBarLayout"> <item name="elevation">0dp</item> </style> 但是我没有find一个属性来将其设置在我的Theme.MyApp ,就像android:editTextStyle 。 对于TextInputLayout,FAB等来说也是如此。 这些小部件直接从资源中获取主题: TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.AppBarLayout, R.style.Widget_Design_AppBarLayout); 那么,真的没有办法用这种forms定义样式? 如果没有,有没有技术上的理由不提供这个function?

android:TextInputLayout隐藏drawText的子EditText

我总是更新库更新,这是它的结果。 在build.gradle(Project:xxx)中: classpath 'com.android.tools.build:gradle:2.2.0-beta1' 在build.gradle(模块:应用程序) compile 'com.android.support:appcompat-v7:24.2.0' compile 'com.android.support:design:24.2.0' 并把密码字段如下所示: <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> Taadaa …我的密码字段现在看起来如下: 你也可以简单地使用EditText 。 但是,这个更新有一些小故障。 问题:如果我把任何drawableRight放在EditText中,它什么也不显示。 TextInputLayout也有属性来禁用切换function。 我也是这样做了,但没有成功: <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> 任何人都可以帮助我。

在将错误设置为null之后,android TextInputLayout更改EditText样式

我第一次使用新的Android小部件TextInputLayout,这是非常好的,但我使用setError方法面临一些问题 这是我的xml <android.support.design.widget.TextInputLayout android:id="@+id/userData_txtNameWrapper" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:textColorHint="@color/light_gray" app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout"> <EditText android:id="@+id/userData_txtName" style="@style/bold_textbox_style" android:layout_width="match_parent" android:layout_height="@dimen/textinut_height" android:layout_margin="5dp" android:hint="name" android:imeOptions="actionNext" android:inputType="text" android:paddingTop="10dp" android:textSize="@dimen/medium_text"/> </android.support.design.widget.TextInputLayout> 发生什么事: 当我跑步 setError("error message") 整个EditText背景和提示文字颜色变成红色,因为这里没问题。 问题是当我跑步 setError(null) EditText的样式完全改变了原来的样子。 开始的情况: 聚焦 重点 在 setError("mandatory field") AFER setError(null) 我做了很多研究,但找不到有用的东西,这个问题到底是怎么回事? UPDATE 在调查setError()方法的android源代码中,我发现这个 public void setError(@Nullable CharSequence error) { if (!mErrorEnabled) { if (TextUtils.isEmpty(error)) { // If error […]

保持TextInputLayout始终为焦点或始终展开标签

我想知道是否可以始终保持标签展开,不pipe是否有文本在EditText 。 我在源代码中查看了一下,它是在ValueAnimator使用ValueAnimator和counter来animation或不animation变化。 也许我可以在TextInputLayout的EditText上设置一个自定义的TextWatcher和一个自定义的ValueAnimator ?

将值input到edittext后出现TextInputLayout错误

如何在EditTextinput一个文本后隐藏一个TextInputLayout错误。 可能吗? 我怎么能做到这一点,或者我在这里做错了什么。 码 layoutEdtPhone =(TextInputLayout)rootView.findViewById(R.id.layoutEdtPhone); layoutEdtPhone.setErrorEnabled(true); layoutEdtPhone.setError(getString(R.string.ui_no_phone_toast)); layoutEdtPassword = (TextInputLayout)rootView.findViewById(R.id.layoutEdtPassword); layoutEdtPassword.setErrorEnabled(true); layoutEdtPassword.setError(getString(R.string.ui_no_password_toast)); edtPhone=(EditText)rootView.findViewById(R.id.edtPhone); edtPassword=(EditText)rootView.findViewById(R.id.edtPassword); XML <EditText android:id="@+id/edtPhone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="100dp" android:background="@drawable/edt_background_selector" android:drawableLeft="@drawable/phone_icon" android:drawableStart="@drawable/phone_icon" android:hint="@string/phone" android:inputType="phone" android:padding="5dip" android:singleLine="true" android:textSize="14sp" /> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:id="@+id/layoutEdtPassword" android:layout_width="fill_parent" android:layout_height="wrap_content" > <EditText android:id="@+id/edtPassword" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:background="@drawable/edt_background_selector" android:drawableLeft="@drawable/password_icon" android:drawableStart="@drawable/password_icon" android:hint="@string/password" android:inputType="textPassword" android:padding="5dip" android:singleLine="true" android:textSize="14sp" /> </android.support.design.widget.TextInputLayout>

Android中的inputTextLayout setError()方法不起作用

我devise了一个自定义的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> MainActivity.java mLastNameLayout = (TextInputLayout) findViewById(R.id.last_name_layout); mLastNameLayout.setHint("Last name"); mLastNameLayout.setErrorEnabled(true); 来自styles.xml的自定义主题 <style name="TextLabel" parent="TextAppearance.AppCompat"> <!– Hint color and label […]

在一个RecyclerView中的OnClick在TextInputLayout里面的EditText中

在我的Fragment中有一个RecyclerView,里面填充了几个TextInputLayout。 经过一番研究之后,我设法将onClickListener设置为TextInputLayout,并正在工作 但 当我点击TextInputLayout的提示时,onClick事件才被触发。 当我点击TextInputLayout中的EditText时,我希望它被触发。 码: 在我的片段: adapter.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.i("Logging", "Element: "+rView.getChildAdapterPosition(v));//rView is RecyclerView RelativeLayout rel=(RelativeLayout)v; TextInputLayout til=(TextInputLayout) rel.getChildAt(0); EditText editText=til.getEditText(); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) […]

新的密码可见性切换为EditTexts打破了现有的drawableRight?

编辑我只是尝试了一个没有TextInputLayout的EditText ,它按预期工作。 所以这个问题必须在TextInputLayout有新的改变。 我已经使用一个自定义的EditText类作为一个TextInputLayout孩子大约一个月。 当用户键入时, x将出现在drawableRight字段中。 我已经成功地显示了drawableLeft , drawableTop和drawableBottom ,但是设置drawableRight为我提供了一个空白。 注意:单击X SHOULD所在的空白区域可以正常工作,文本被清除。 这第一张照片是它原来的样子: 自升级到support-v4:24.2.0 ,function已被打破。 它现在放置在带有drawableBottom的可绘制集合出现的“x”处。 第二张图片显示了新的行为: XML代码 <android.support.design.widget.TextInputLayout android:id="@+id/til_delivery_info_state" android:hint="@string/state_hint" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/large_margin" android:layout_marginRight="@dimen/large_margin"> <com.example.ui.edittexts.ClearableEditText android:id="@+id/et_state" android:inputType="textCapWords|text|textNoSuggestions" android:nextFocusDown="@+id/et_di_zip_code" android:text="@={deliveryViewModel.state}" android:gravity="center_vertical|left" android:singleLine="true" android:textSize="@dimen/text_size"/> </android.support.design.widget.TextInputLayout> Java的 final Drawable drawable = ContextCompat.getDrawable(context, R.drawable.ic_clear_text_gray_x); final Drawable wrappedDrawable = DrawableCompat.wrap(drawable); mClearTextIcon.setBounds(0, 0, mClearTextIcon.getIntrinsicWidth(), mClearTextIcon.getIntrinsicHeight()); mClearTextIcon.setVisible(true, false); final Drawable[] compoundDrawables […]