Material 没有标签的文本字段
Material Text fields without labels
在material.io里面有一段关于Text fields without labels
,就会变成这样
当edittext位置为焦点时,label也为焦点。如何实现?因为我尝试使用单独的 textview,但是当 edittext 成为焦点时,标签也没有成为焦点
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_16"
android:text="Testing Label" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/outlinedTextField"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
您可以在 TextInputEditText
上设置焦点更改侦听器并相应地更改标签颜色。
editText.setOnFocusChangeListener { v, hasFocus ->
if (hasFocus)
label.setTextColor(ContextCompat.getColor(context, R.color.colorPrimary))
else
label.setTextColor(ContextCompat.getColor(context, R.color.defaultColor))
}
使用:
outlinedTextInputLayout.getEditText().setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus)
label.setTextColor(ContextCompat.getColor(context, R.color.xxxx));
else
label.setTextColor(ContextCompat.getColor(context, R.color.xxxx));
}
});
在material.io里面有一段关于Text fields without labels
,就会变成这样
当edittext位置为焦点时,label也为焦点。如何实现?因为我尝试使用单独的 textview,但是当 edittext 成为焦点时,标签也没有成为焦点
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_16"
android:text="Testing Label" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/outlinedTextField"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
您可以在 TextInputEditText
上设置焦点更改侦听器并相应地更改标签颜色。
editText.setOnFocusChangeListener { v, hasFocus ->
if (hasFocus)
label.setTextColor(ContextCompat.getColor(context, R.color.colorPrimary))
else
label.setTextColor(ContextCompat.getColor(context, R.color.defaultColor))
}
使用:
outlinedTextInputLayout.getEditText().setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (hasFocus)
label.setTextColor(ContextCompat.getColor(context, R.color.xxxx));
else
label.setTextColor(ContextCompat.getColor(context, R.color.xxxx));
}
});