我当前正在尝试禁用TextInputEditText
的下划线。 current implementation的外观如下。我想要相同的外观,但没有下划线。这是当前的XML:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:theme="@style/ProfileDetail.TextInputLayout"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/selector_background_profile_item"
android:ellipsize="end"
android:maxLines="1"
android:textAppearance="?textAppearanceBody2"
android:enabled="false"
tools:text="Jimmy" />
</com.google.android.material.textfield.TextInputLayout>
自定义样式:
<style name="ProfileDetail.TextInputLayout" parent="Widget.Design.TextInputLayout">
<item name="colorControlNormal">@color/white</item>
</style>
到目前为止,我已经尝试过:
TextInputLayout
的主题设置为自定义样式TextInputEditText
和/或TextInputLayout
的背景覆盖为纯色可绘制对象大多数在线解决方案都建议使用自定义样式并设置colorControlNormal,但这似乎对我来说并不成功。预先感谢
答案 0 :(得分:0)
当前尚不存在在TextInputLayout
中隐藏下划线的方法。
但是,您可以更改默认颜色。
要使用FilledBox样式更改底线颜色,可以在布局中使用 app:boxStrokeColor
属性,也可以在样式中使用属性 boxStrokeColor
。< / p>
类似的东西:
<com.google.android.material.textfield.TextInputLayout
app:boxStrokeColor="@color/my_selector"
...>
或
<style name="ProfileDetail.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
<item name="boxStrokeColor">@color/my_selector</item>
....
</style>
这是boxStrokeColor使用的默认选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?attr/colorPrimary" android:state_focused="true"/>
<!-- 4% overlay over 42% colorOnSurface -->
<item android:alpha="0.46" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
<item android:alpha="0.38" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
<item android:alpha="0.42" android:color="?attr/colorOnSurface"/>
</selector>
答案 1 :(得分:0)
如果将背景色设置为透明,它将消失:
yourEditText.setBackground(getResources().getDrawable(R.color.transparent));
其中:
<color name="transparent">#00000000</color>
编辑:在加布里埃发表评论后,我再次检查了我的项目,只要我直接而不是通过TextInputLayout更改TextInputEditText视图上的背景,就可以验证上述解决方案是否对我有用。我认为这种想法是用颜色替换了包含下划线的背景可绘制对象,并且由于颜色是透明的,因此视图与背景融合在一起。
编辑2:同样,如果您想编辑包含的布局,对我来说似乎有用:mTextInputLayout.setBoxBackgroundMode(TextInputLayout.BOX_BACKGROUND_NONE);