【问题标题】:Change thickness of the bottom line of EditText when wrapped into TextInputLayout包装到 TextInputLayout 时更改 EditText 底线的粗细
【发布时间】:2015-10-23 21:18:14
【问题描述】:

这是我的代码

XML 标记

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/TextLabel">

    <EditText
        android:id="@+id/etContactName"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Contact Name"/>

</android.support.design.widget.TextInputLayout>

风格

<style name="TextLabel" parent="TextAppearance.AppCompat">
    <item name="android:textColorHint">@color/hintColor</item>
    <item name="colorAccent">@color/primaryColor</item>
    <item name="colorControlNormal">@color/hintColor</item>
    <item name="colorControlActivated">@color/primaryColor</item>
</style>

这是输出
(普通视图)

(聚焦视图)

现在我的问题/问题

  1. 我希望底线更薄。我应该在哪里改变它。
  2. 闪烁的光标不显示,如何显示。
  3. EditText 会自动突出显示拼写错误。我需要阻止它。

谁能指出解决问题的正确方法。评论你任何人都需要更多信息来回答这个问题。

提前致谢。

【问题讨论】:

  • 你是如何解决这个问题的?你能和我们分享一下吗?
  • @Selin:发布我的解决方案

标签: android android-edittext styles material-design android-textinputlayout


【解决方案1】:

我已经使用我的自定义 xml drawable 解决了我的问题。可能有更好的方法,但我找不到。以下是我用作文本框背景的可绘制对象

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <layer-list >
            <item
                android:bottom="1dp"
                android:left="-2dp"
                android:right="-2dp"
                android:top="-2dp">
                <shape android:shape="rectangle" >
                    <stroke
                        android:width="0.5dp"
                        android:color="@color/primaryColor" />

                    <solid android:color="#00FFFFFF" />

                    <padding android:left="3dp"
                        android:right="3dp"
                        android:top="3dp"
                        android:bottom="3dp" />
                </shape>
            </item>

        </layer-list>
    </item>
    <item android:state_focused="true">
        <layer-list >
            <item
                android:bottom="1dp"
                android:left="-2dp"
                android:right="-2dp"
                android:top="-2dp">
                <shape android:shape="rectangle" >
                    <stroke
                        android:width="0.5dp"
                        android:color="@color/primaryColor" />

                    <solid android:color="#00FFFFFF" />

                    <padding android:left="3dp"
                        android:right="3dp"
                        android:top="3dp"
                        android:bottom="3dp" />
                </shape>
            </item>

        </layer-list>
    </item>
    <item>
        <layer-list >
            <item
                android:bottom="1dp"
                android:left="-2dp"
                android:right="-2dp"
                android:top="-2dp">
                <shape android:shape="rectangle" >
                    <stroke
                        android:width="0.5dp"
                        android:color="#BCBCBC" />

                    <solid android:color="#00FFFFFF" />

                    <padding android:left="3dp"
                        android:right="3dp"
                        android:top="3dp"
                        android:bottom="3dp" />
                </shape>
            </item>

        </layer-list>
    </item>

</selector>

【讨论】:

  • 最后,谢谢。在尝试了其他帖子中提到的 20 种不同的东西之后,这对我有用
  • 非常感谢先生。尝试了很多东西,但最后都成功了。
  • 我已经尝试了大约 7 种不同的选项,这实际上是唯一一个在每种情况下都能按预期工作的选项。
  • 太棒了!为我工作!
  • 这行得通。但是行和文本之间有一个奇怪的填充,我无法删除
【解决方案2】:

编辑文本底部颜色

android:backgroundTint="@color/yourcolor"

要禁用拼写检查,请在 Edittext xml 中添加代码

android:inputType="textNoSuggestions"

在你项目的drawable文件夹中创建一个名为“EditTextStyle.xml”的XML文件,并编写如下代码:

<?xml version="1.0" encoding="utf-8" ?>

   <shape xmlns:android="http://schemas.android.com/apk/r..."
   android:thickness="0dp"
   android:shape="rectangle">
  <stroke android:width="3dp"
     android:color="#4799E8"/>
  <corners android:radius="5dp" />
  <gradient
  android:startColor="#C8C8C8"
  android:endColor="#FFFFFF"
  android:type="linear"
  android:angle="270"/>
  </shape>

现在将以下属性添加到您的 EditText:

       <EditText    

        android:background="@drawable/EditTextStyle"/>

【讨论】:

  • 我可以更改 EditText 的底部颜色,我需要将笔画宽度更改得更细。
猜你喜欢
  • 2018-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 2018-10-13
  • 2018-02-02
  • 2015-08-29
相关资源
最近更新 更多