似乎我无法放入requestFocus我的内部,TextInputEditText因为它会使用此堆栈跟踪在预览屏幕上导致渲染问题:
android.content.res.Resources$NotFoundException: Unable to find resource ID #0x1ff0005
at android.content.res.Resources.getResourceName(Resources.java:2235)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2602)
at android.content.res.Resources.loadDrawable(Resources.java:2540)
at android.content.res.Resources.getDrawable(Resources.java:806)
at android.content.Context.getDrawable(Context.java:458)
at android.widget.Editor.updateCursorPosition(Editor.java:2007)
at android.widget.Editor.updateCursorsPositions(Editor.java:1703)
at android.widget.TextView.getUpdatedHighlightPath(TextView.java:5526)
at android.widget.TextView.onDraw(TextView.java:5713)
at android.view.View.draw(View.java:16178)
at android.view.View.draw(View.java:16090)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16181)
at android.support.design.widget.TextInputLayout.draw(TextInputLayout.java:845)
at android.view.View.draw(View.java:16090)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16088)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16088)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16088)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609) …Run Code Online (Sandbox Code Playgroud) xml android android-layout android-support-library android-textinputlayout
Android支持库添加了TextInputLayout,添加了浮动标签和密码切换可访问性等几项功能
我的问题是如何自定义passwordVisisbilityDrawable,以便显示我自己的可见和隐藏状态图标.
此外,当我启用passwordToggleVisibility时,高度将增加.
我的布局中有多个 TextInputLayouts,我需要验证字段(如果它们无效,则显示错误文本)。
但是TextView包含错误是由TextInputLayout动态添加的,因此它会更改布局高度,并且底部的所有视图都降低了 added 的高度TextView。
所以问题是:即使没有显示错误,我是否可以为错误文本保留空间?
我正在尝试验证表单,我正在使用 TextInputLayout 错误来显示错误,当我在空表单中单击提交按钮时,错误仅显示在名称字段中,并且在我填写名称文本时未隐藏错误。其他字段也没有显示验证错误。
活动表单.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:orientation="vertical">
<android.support.design.widget.TextInputLayout
android:id="@+id/nameTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/formNameEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/form_hint_name"
android:inputType="textPersonName"
android:imeOptions="actionNext"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/EmailTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/formEmailEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/form_hint_email"
android:inputType="textEmailAddress"
android:imeOptions="actionNext"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/PhoneTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/form_hint_mobile_number"
android:imeOptions="actionNext"
android:id="@+id/formMobileEdit"
android:inputType="number"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/AlternateTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/form_hint_alternate_number"
android:imeOptions="actionNext"
android:id="@+id/formAlternateEdit"
android:inputType="number"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/JEETextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent" …Run Code Online (Sandbox Code Playgroud) 我试图让AutoCompleteTextView这个图像看起来像https://ibb.co/ZJxmgK5,但无法做到这一点。轮廓框在结果中不可见
下面是我目前的代码。早些时候我尝试添加一个EditText,TextInputLayout但现在我想在这个中添加自动完成。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/input_layout_holiday_destination"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/lbl_destination_big">
<AutoCompleteTextView
android:id="@+id/edittext_holiday_destination"
style="@style/Base.Widget.AppCompat.EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="10"
android:background="@android:color/transparent"
android:hint="@string/lbl_destination"
android:layout_marginLeft="@dimen/margin8"
android:singleLine="true"
android:lines="1"
android:textSize="25sp"
android:nextFocusDown="@+id/txv_holiday_num_of_nights"
android:imeOptions="actionNext"
android:textCursorDrawable="@drawable/edittext_cursor_drawable"/>
/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
预期的结果是上面给出了 URL 的图像。
android autocompletetextview material-design android-textinputlayout material-components-android
我为我的密码字段选择了 TextInputEditText,以使用切换密码功能。
这是我的 xml 代码:
<com.google.android.material.textfield.TextInputLayout
android:layout_width="@dimen/login_width"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/password_margin_top"
app:hintEnabled="false"
app:passwordToggleDrawable="@drawable/password_toggle_drawable"
app:passwordToggleEnabled="true">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/my_login_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:hint="@string/password"
android:inputType="textPassword"
android:nextFocusDown="@+id/my_login_login"
android:padding="@dimen/field_padding" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
我必须对切换密码进行一些其他布局更改。在 TextInputLayout 中是否有任何可用的回调?
如何在未TextInputLayout聚焦时更改边框和颜色?
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_height="wrap_content"
app:boxStrokeWidth="4dp"
app:boxStrokeColor="@color/colorPrimary"
app:layout_constraintTop_toBottomOf="@id/a">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:hint="@string/app_name"
android:textColorHint="@color/colorPrimary"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
我尝试:
app:boxStrokeWidth="4dp"
app:boxStrokeColor="@color/colorPrimary"
Run Code Online (Sandbox Code Playgroud)
但是,不能在不聚焦的情况下工作
android android-xml android-textinputlayout material-components material-components-android
我正在尝试以编程方式将带有 EditText 的 TextInputLayout 添加到 LinearLayout。我的做法:
TextInputLayout textInputLayout = new TextInputLayout(new ContextThemeWrapper(getContext(), R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox));
textInputLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
textInputLayout.setHintTextAppearance(R.style.Base_Widget_MaterialComponents_TextInputLayout_TextInputLayout);
TextInputEditText editText = new TextInputEditText(getContext());
editText.setHint("test");
textInputLayout.addView(editText, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
linearLayout.addView(textInputLayout);
Run Code Online (Sandbox Code Playgroud)
然而,结果看起来非常错误:
奇怪的是,通过 XML 添加相同的 TextInputLayout 有效:
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="kommentar"
app:hintTextAppearance="@style/Base.Widget.MaterialComponents.TextInputLayout.TextInputLayout">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
现在,我需要补充一点,在升级到Material 1.1之前,编程方法是有效的。我只使用材料组件。我怎样才能解决这个问题?
java android material-design android-textinputlayout material-components-android
当我想在 EditText 中写我的提示与 OutlinedBox 重叠时,我的提示有问题,所以我不明白是什么问题。所以这是我的代码
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/text_input_username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:drawableStart="@drawable/ic_action_name"
android:hint="@string/Enter_Username"
android:inputType="textPersonName"/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
我的问题:
xml android android-textinputlayout textinputlayout material-components-android
我正在尝试制作类似以下示例的内容:
我希望在我从服务器验证用户名时显示可绘制对象。
我正在使用 Material Design 文本输入字段和 EditText。是的,我可以使用 simpleEditText和 an 来完成ImageView,但我想使用标准元素。
我查看了官方文档,有一种方法可以使用XML在右上角添加图像,但我想以编程方式添加它。
android android-edittext android-textinputlayout material-components-android