当前位置: 首页 > 知识库问答 >
问题:

EditText的句柄加下划线

濮阳君浩
2023-03-14

我最近遇到了一个问题,就是将edittext的默认下划线条从默认的黑色更改为白色。

我使用了这个解决方案,在我看来,通过更改EditText的样式,它是最佳实践:

编辑文本

<android.support.v7.widget.AppCompatEditText
    android:id="@+id/nom"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/Activity_Main_EditText_Nom"
    android:imeOptions="actionNext"
    android:paddingBottom="10dp"
    android:paddingLeft="10dp"
    android:paddingRight="10dp"
    android:paddingTop="10dp"
    android:textColor="@android:color/white"
    android:textColorHint="@color/activityBackground"
    android:theme="@style/EditTextStyle"
    android:visibility="gone"
/>
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowDisablePreview">true</item>
    <item name="android:windowBackground">@color/activityBackground</item>
    <item name="windowActionBar">false</item>
    <item name="actionMenuTextColor">@android:color/white</item>
    <item name="android:windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="EditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="colorControlNormal">@android:color/white</item>
    <item name="colorControlActivated">@color/colorAccent</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>

<resources>

    <style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowDisablePreview">true</item>
        <item name="android:windowBackground">@color/activityBackground</item>
        <item name="windowActionBar">false</item>
        <item name="actionMenuTextColor">@android:color/white</item>
        <item name="android:windowNoTitle">true</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="MyTheme.EditText" parent="MyTheme">
        <item name="colorControlNormal">@android:color/white</item>
        <item name="colorControlActivated">@color/colorAccent</item>
        <item name="colorControlHighlight">@color/colorAccent</item>
    </style>

</resources>

像往常一样,将MyTheme应用于应用程序。当您想要调整edittext时,只需向其添加

编辑文本

<EditText
     ...
     android:theme="@style/MyTheme.EditText"
     ...
/>

共有1个答案

杜哲彦
2023-03-14

问题是你的风格主题…家长

使用以下代码:

<android.support.v7.widget.AppCompatEditText
    android:theme="@style/MyStyle.EditText"/>

现在在您的styles.xml中

 <style name="MyStyle.EditText">
    <item name="editTextStyle">@style/MyEditTextStyle</item>
</style>

<style name="MyEditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="colorControlNormal">@android:color/white</item>
    <item name="colorControlActivated">@color/colorAccent</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>
 <style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">@android:color/white</item>
    <item name="colorControlActivated">@color/colorAccent</item>
    <item name="colorControlHighlight">@color/colorAccent</item>
</style>
 类似资料:
  • 我有自定义背景可绘制的EditText: EditText代码: 我正在使用android数据绑定库和MVVM架构。 当允许编辑并且用户开始在EditText中键入文本时,在键入的单词下会出现额外的下划线(它只属于当前键入的单词,EditText文本的所有其他部分都没有下划线): 我试图通过向EditText添加滤色器来删除下划线: 但不管用。 “java.lang.Integer不能强制转换为A

  • 我正在使用水平线性布局来并排显示一个图像和一个文本字段: 我在线性布局中添加了一个底部下划线,这样图像和文本字段都在一起下划线。我现在需要做的是从“编辑”文本框中删除下划线: 此图像显示,当取消聚焦时,编辑文本下划线仍然存在, 并且他的图像显示编辑文本下划线在聚焦时仍然存在。 我在so:here和here上使用了每个示例中的xml代码,但没有用。将android:background更改为@nul

  • 在书写代码与阅读代码的时候,经常会看到这一句代码: typedef void *HANDLE ,它是何方神圣呢?如何理解呢? 不理解它的时候,感觉它很神奇,知道它以后,它就是个typedef的定义,只不过是void*类型罢了,也就是HANDLE等价于void *,我们可以叫它披着句柄皮的指针(PS:指针和句柄是有区别的,在这说句废话); 对于void* 神通广大,因为它作为函数参数or函数返回值,

  • 如何隐藏EditText下划线(末尾有衬线的提示线)? 可能有一个更好的方法来实现我想要的:我有一个带有EditText的布局。通常情况下,在用户可以点击它并开始输入或编辑文本的地方显示良好。 然而,有时我希望使用相同的布局(简化其他逻辑)以只读方式显示相同的数据。我希望演示文稿是相似的--它应该有相同的高度和相同的字体,但没有下划线。 作为权宜之计,我将通过删除EditText并替换TextVi

  • 我的问题是-如何改变禁用下划线颜色17 API?我已经尝试了样式,并没有寻找禁用的帕拉姆。有什么建议吗?

  • 你可以创建任何MATLAB函数的句柄,然后用这些句柄作为函数链接的途径。函数句柄主要用来传递自变量列表给其他函数,用句柄执行函数或求值。 在MATLAB中,通过在函数名前加上符号@构造函数句柄。下面例子为SIN函数创建一个函数句柄,然后赋值给变量fhandle: fhandle = @sin; 用MATLAB的fevel函数对函数句柄求值。下面的plot_fhandle函数接收一个函数句柄和数据