android - InputTextEdiText 中的 setBoxBackgroundMode 为 NONE 不会删除下划线
问题描述
我将我的 TextInputEditText 用作 TextView 和 TextInputEditText。一个开关决定 TextInputEditText 应该扮演什么角色。在初始加载时,EditText 没有下划线,当 Role 翻转为 EditText 时,添加了下划线。在重新翻转时,下划线对 Textview 的作用仍然存在,而我希望它恢复到初始状态,下面是我正在做的一个小动画。
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/inl_miniuserinfo_paypal"
style="@style/profile_inputtext"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/et_miniuserinfo_paypal"
style="@style/profile_textInputEditext"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
对应的styles.xml:
<style name="profile_inputtext">
<item name="boxStrokeColor">@null</item>
<item name="android:layout_marginStart">@dimen/normalPadding</item>
<item name="boxStrokeWidth">0dp</item>
</style>
<style name="profile_textInputEditext">
<item name="android:padding">0dp</item>
<item name="android:paddingStart">0dp</item>
<item name="android:paddingEnd">0dp</item>
<item name="android:enabled">false</item>
<item name="android:background">@color/colorSurface</item>
<item name="fontFamily">@font/proximanovaregular</item>
<item name="android:textSize">@dimen/textsize_small</item>
<item name="android:text">@string/not_available</item>
</style>
我翻转角色的代码是:
private void loadData() {
binding.isMiniuserinfo.setCheckedChangeListener(current -> {
switch (current)
{
case LEFT:
activateAllEditText();
break;
case RIGHT:
if (binding.inlMiniuserinfoPaypal.isErrorEnabled() )
disableAllEditText();
saveChanges();
break;
}
});
}
private void disableAllEditText() {
binding.etMiniuserinfoBio.setEnabled(false);
binding.etMiniuserinfoEmail.setEnabled(false);
binding.etMiniuserinfoLocation.setEnabled(false);
binding.etMiniuserinfoPaypal.setEnabled(false);
binding.inlMiniuserinfoBio.setBoxBackgroundMode(TextInputLayout.BOX_BACKGROUND_NONE);
binding.inlMiniuserinfoEmail.setBoxBackgroundMode(TextInputLayout.BOX_BACKGROUND_NONE);
binding.inlMiniuserinfoLocation.setBoxBackgroundMode(TextInputLayout.BOX_BACKGROUND_NONE);
binding.inlMiniuserinfoPaypal.setBoxBackgroundMode(TextInputLayout.BOX_BACKGROUND_NONE);
}
private void activateAllEditText() {
//inl==InputTextEditText
binding.etMiniuserinfoBio.setEnabled(true);
binding.etMiniuserinfoEmail.setEnabled(true);
binding.etMiniuserinfoLocation.setEnabled(true);
binding.etMiniuserinfoPaypal.setEnabled(true);
//inl==InputTextLayout
binding.inlMiniuserinfoBio.setBoxStrokeWidth(2);
binding.inlMiniuserinfoEmail.setBoxStrokeWidth(2);
binding.inlMiniuserinfoLocation.setBoxStrokeWidth(2);
binding.inlMiniuserinfoPaypal.setBoxStrokeWidth(2);
}
所以你现在就会明白这个问题了,我需要我的 InputTextLayout 在从左到右切换后不要画下划线。
解决方案
推荐阅读
- java - java 标志 Xms 和 Xmx 是否覆盖标志 XX:+UseCGroupMemoryLimitForHeap?
- iis - IIS 没有为 .NET Core 使用正确的版本 - 如何管理?
- mongodb - 如何使用 Spring Boot 框架使用 Elasticsearch 搜索功能并通过 MongoDB 进行插入?
- c++ - 在 MinGW 中使用 DLL 包装 Windows PackageManager
- tcl - 在 TCL/Tk tablelist 单元格中格式化字符串的一部分
- c# - 为多用户 windows 应用程序设置服务器 IP
- java - 带有特殊字符(“\N”、“\S”和“\T”)的 JDBC 查询插入
- java - 如何检查列表列表中的对象是否为空或空?
- angular - Angular 6 - 从表单外部验证和提交表单
- jquery - 为什么 React 的性能优于使用 JQuery 的直接 DOM 操作?