不关注时显示 TextInputEditText 的标签
Show label of TextInputEditText when not focused on this
-
user-interface
-
android
-
android-textinputlayout
-
android-textinputedittext
-
material-components-android
我有一个包含两个 TextInputEditText
的布局,当我在此(以编程方式或使用 xml
)上设置文本并将焦点设置在另一个 TextInputEditText
上时,上面的标签 TextInputEditText
被隐藏了。
我想显示这个标签,即使是在其中写了一段文字。
我的xml
代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/whiteGray2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:orientation="horizontal"
android:weightSum="2"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp">
<com.google.android.material.textfield.TextInputLayout
style="@style/CustomBorderTextInputEditText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/oldCount"
app:hintTextColor="@color/gray_text">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/input_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:inputType="none"
android:imeOptions="actionNext"
android:text="Hi How are you"
android:textColor="@color/gray_text"
android:textColorHint="@color/gray_text" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style="@style/CustomBorderTextInputEditText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/newCount">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/newCount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:textColorHint="@color/gray_text"
android:hint="@string/newCount"
android:textColor="@color/gray_text"
android:inputType="number"/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
我的风格:
<style name="CustomBorderTextInputEditText" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="boxStrokeColor">@color/text_input_box_stroke</item>
<item name="hintTextColor">?attr/colorPrimary</item>
</style>
将其添加到您的 xml 代码中:
android:focusableInTouchMode="true"
或
将其添加到您的 java 代码中:
EditText newCount = (EditText)findViewById(R.id.newCount);
newCount.setFocusable(true);
说不定对你有用,试试吧
我找到了答案。我应该添加 textColorHint
并设置颜色而不是添加 hintTextColor
属性。但是现在我很困惑,它们之间有什么区别?
您的问题在这里:
<com.google.android.material.textfield.TextInputEditText
android:textColorHint="@color/gray_text"
删除TextInputEditText
中的android:textColorHint
并使用:
<com.google.android.material.textfield.TextInputLayout
app:hintTextColor="@color/colorSecondary"
android:textColorHint="@color/text_input_hint_selector"
hintTextColor
是标签折叠且文本字段处于活动状态时的颜色。
android:textColorHint
是标签在所有其他文本字段状态(例如静止和禁用)下的颜色。
举个例子:
这是选择器:
这里是TextInputLayout
:
没有文字:
重点:
文本未聚焦:
已禁用:
user-interface
android
android-textinputlayout
android-textinputedittext
material-components-android
我有一个包含两个 TextInputEditText
的布局,当我在此(以编程方式或使用 xml
)上设置文本并将焦点设置在另一个 TextInputEditText
上时,上面的标签 TextInputEditText
被隐藏了。
我想显示这个标签,即使是在其中写了一段文字。
我的xml
代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/whiteGray2">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:orientation="horizontal"
android:weightSum="2"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp">
<com.google.android.material.textfield.TextInputLayout
style="@style/CustomBorderTextInputEditText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/oldCount"
app:hintTextColor="@color/gray_text">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/input_address"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true"
android:inputType="none"
android:imeOptions="actionNext"
android:text="Hi How are you"
android:textColor="@color/gray_text"
android:textColorHint="@color/gray_text" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
style="@style/CustomBorderTextInputEditText"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:hint="@string/newCount">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/newCount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="1"
android:textColorHint="@color/gray_text"
android:hint="@string/newCount"
android:textColor="@color/gray_text"
android:inputType="number"/>
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
我的风格:
<style name="CustomBorderTextInputEditText" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="boxStrokeColor">@color/text_input_box_stroke</item>
<item name="hintTextColor">?attr/colorPrimary</item>
</style>
将其添加到您的 xml 代码中:
android:focusableInTouchMode="true"
或
将其添加到您的 java 代码中:
EditText newCount = (EditText)findViewById(R.id.newCount);
newCount.setFocusable(true);
说不定对你有用,试试吧
我找到了答案。我应该添加 textColorHint
并设置颜色而不是添加 hintTextColor
属性。但是现在我很困惑,它们之间有什么区别?
您的问题在这里:
<com.google.android.material.textfield.TextInputEditText
android:textColorHint="@color/gray_text"
删除TextInputEditText
中的android:textColorHint
并使用:
<com.google.android.material.textfield.TextInputLayout
app:hintTextColor="@color/colorSecondary"
android:textColorHint="@color/text_input_hint_selector"
hintTextColor
是标签折叠且文本字段处于活动状态时的颜色。
android:textColorHint
是标签在所有其他文本字段状态(例如静止和禁用)下的颜色。
举个例子:
这是选择器:
这里是TextInputLayout
:
没有文字:
重点:
文本未聚焦:
已禁用: