关于android:EditText:如何一次显示光标和隐藏下划线?

EditText: How to show cursor and hide underline at a time?

我正在开发一个计算器应用程序。 我想像Android默认的计算器应用程序一样实现UI。 请查看我的应用程序的屏幕截图。

enter image description here

我想隐藏EditText的下划线并以white颜色显示光标。 我在EditText(从这里)使用透明背景也使用背景作为@null。 它隐藏了EditText的下划线并隐藏了光标。 但是......对于计算器App游标不应该被隐藏。

请给我一种隐藏EditText下划线的方法,并显示EditText的白色光标。


将背景drawable设置为透明,并将android:textCursorDrawable设置为null,使光标颜色始终为文本颜色。 例如:

1
2
3
4
5
6
<EditText
    android:id="@+id/editTextInput"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:textCursorDrawable="@null"/>

将背景drawable设置为透明,并设置您选择的Text Cursor drawable。 例如:

1
2
3
4
5
6
<EditText
                android:id="@+id/remarkEditText"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/transparent"
                android:textCursorDrawable="@drawable/white"/>


通过Progamatically,您可以将EditText背景过滤器设置为此。 这会将其设置为清晰的背景颜色。

1
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);

或者通过XML,你可以做到这一点,但这只适用于Android API 21 +,你最好的选择是彩色滤镜。

1
android:backgroundTint="@android:color/transparent"

对于游标,您应该通过XML添加textCursorDrawablecursorVisible


请在EditText中添加一个:=

1
2
3
4
5
6
<EditText
                android:id="@+id/youId"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#00000000"
                />