android - EditText 中缺少光标和下划线

标签 android kotlin android-edittext android-toolbar

我在 Toolbar 中使用 EditText,无论我做什么,光标和下划线都不会出现

xml代码

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/toolbar"
    app:collapseIcon="@drawable/ic_arrow_up_24dp"
    app:titleTextColor="@color/white"
    android:layout_alignParentTop="true"
    android:animateLayoutChanges="true"
    android:visibility="gone"
    android:alpha="0.0"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimary">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">


    <EditText
        android:id="@+id/edit_text"
        android:layout_width="match_parent"
        android:cursorVisible="true"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:layout_height="wrap_content"
        android:hint="Search..."
        android:textCursorDrawable="@color/white"
        android:textColor="@color/md_white_1000"
        android:layout_marginRight="120dp"
        />

</LinearLayout>
</android.support.v7.widget.Toolbar>

Kotlin 代码

        editText?.visibility = View.VISIBLE
        editText?.requestFocus()
        editText?.isCursorVisible = true
        editText.setRawInputType(InputType.TYPE_CLASS_TEXT);
        editText.setTextIsSelectable(true);

我哪里出错了,有人可以帮忙吗?

最佳答案

这是因为默认情况下EditText的下划线和光标是colorAccent。因此,如果您想将它们的颜色更改为白色,那么您应该在 styles.xml 中定义一个样式,如下所示:

<style name="editText" parent="AppTheme">
    <item name="colorAccent">@color/white</item>
</style>

然后将此样式作为主题应用到 edittext 中,如下所示:

 <EditText
    android:id="@+id/edit_text"
    android:layout_width="match_parent"
    android:cursorVisible="true"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:layout_height="wrap_content"
    android:hint="Search..."
    android:textCursorDrawable="@color/white"
    android:textColor="@color/md_white_1000"
    android:theme="@style/editText"
    android:layout_marginRight="120dp"
    />

关于android - EditText 中缺少光标和下划线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50619597/

相关文章:

android - 堆栈中的多个 MapActivity

android - Room allowMainThreadQueries 与 Kotlin 协程

android - 保存 EditText 和按钮点击的状态

android - gradle 执行过程错误流

android - surfaceDestroyed() 什么时候发生

android - 我可以在不同的 xml 上使用相同的 ID 吗?

android - 将惰性参数传递给函数

android - 还记得lazycolumn 中的滚动位置吗?

java - 如何从线性布局中动态创建的 EditText 和 TextView 获取数据?

android - EditText 错误图标并显示密码错误