如何从TextInputLayout删除白框

时间:2019-08-29 05:37:37

标签: android android-layout material-design androidx android-textinputlayout

今天我刚刚更新了dependencies的{​​{1}}

material design1.0.0

1.1.0-alpha09

现在我在implementation 'com.google.android.material:material:1.1.0-alpha09' 中遇到了奇怪的问题

这是我的代码

com.google.android.material.textfield.TextInputLayout

更新依赖关系后,我在 <com.google.android.material.textfield.TextInputLayout android:id="@+id/emailTextInputLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/_10sdp"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/emailTextInputEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/hint_enter_email" android:imeOptions="actionNext" android:inputType="textEmailAddress"/> </com.google.android.material.textfield.TextInputLayout> 中获得了盒装设计

以上代码的输出

enter image description here

如果我使用TextInputLayout,我会得到预期的结果

enter image description here

有人可以帮我解决这个问题吗

如果需要更多信息,请告诉我。提前致谢。您的努力将不胜感激。

更新

  

我已经尝试implementation 'com.google.android.material:material:1.0.0'了,我已经收到了

output

  

如果我使用app:boxBackgroundMode="none"然后得到

output

已解决

无需使用 app:boxBackgroundMode="outline"

您需要在您的boxBackgroundMode

中添加 @style/Widget.Design.TextInputLayout

示例代码

TextInputLayout

输出 enter image description here

5 个答案:

答案 0 :(得分:3)

要恢复为无背景但只有底边框的旧样式,应使用以下样式:

<com.google.android.material.textfield.TextInputLayout
           ...
           style="@style/Widget.Design.TextInputLayout"
           ....
           >
</com.google.android.material.textfield.TextInputLayout>

使用主题 Widget.Design.TextInputLayout 将产生如下所示的预期输出:

enter image description here

答案 1 :(得分:1)

使用material ThemeTextInputLayout使用的默认样式是@style/Widget.MaterialComponents.TextInputLayout.FilledBox

enter image description here

要获得类似的效果,只需使用boxBackgroundColor属性更改背景颜色:

  <style name="CustomFilledBox" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
    <item name="boxBackgroundColor">@myColor</item>
  </style>

enter image description here

还可以在android:hint="@string/hint_enter_email"中使用TextInputLayout,而不要在TextInputEditText中使用

答案 2 :(得分:1)

对我来说,使用@ style / Widget.Design.TextInputLayout会产生不良的格式设置结果,尤其是editText框的对齐问题。

我暂时将boxBackgroundMode设置为无,并且在我的项目中更新了材料设计之后,上述错误图标开始显示。可能是错误(https://issuetracker.google.com/issues/122445449)。

现在,我仍然将boxBackgroundMode设置为none,并通过将颜色设置为透明来隐藏错误图标。这样我就可以保留材料设计。

app:boxBackgroundMode="none"
app:errorIconTint="@android:color/transparent"



<com.google.android.material.textfield.TextInputLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="5dp"
        app:boxBackgroundMode="none"
        app:errorIconTint="@android:color/transparent"
        app:hintEnabled="false">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/message_ellipsis"
            android:inputType="textCapSentences|textMultiLine"
            android:paddingTop="10dp" />
    </com.google.android.material.textfield.TextInputLayout>

答案 3 :(得分:0)

在您的TextInputLayout中进行设置:

app:boxBackgroundMode="none"

可能您已将boxBackgroundMode设置为filled,或者可能是默认设置。只需在上面添加一行,即可解决问题。

答案 4 :(得分:0)

com.google.android.material:material:1.3.0 相同的行为

将透明背景应用于 TextInputEditText 即可。

android:background="@android:color/transparent"