android - SearchView 删除蓝色焦点线并在特定位置显示光标

标签 android focus autocompletetextview searchview android-background

我一直在尝试删除 SearchView 中的蓝色焦点线。我将其转换为 AutoCompleteTextView,以便我可以为我的 searchView 使用自定义图标。

    int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
    searchtextView = (AutoCompleteTextView) searchView.findViewById(id); 

我试过用

searchtextView.setBackGroundColor(0) 

并在我的 xml 中手动将背景设置为 #0000000,但我仍然可以看到底部的蓝线。

我面临的第二个问题是光标最初没有显示在文本上。我想在搜索 View 中没有输入任何内容时显示光标。我尝试通过使用以编程方式执行此操作

if (searchtextView.getText().toString().length() >= 0) {
   searchtextView.setSelection(searchtextView.getText().toString().length());
 }

即使 searchView 中不存在文本,它也应该显示光标。我认为这与焦点有关,因为当我输入 2-3 个字符时,光标会自动显示。

最佳答案

我能够通过如下设置默认搜索 View 板的背景来解决它

int searchPlateId = searchView.getContext().getResources()
            .getIdentifier("android:id/search_plate", null, null);
    View searchPlateView = searchView.findViewById(searchPlateId);
    if (searchPlateView != null) {
        searchPlateView.setBackgroundColor(Color.BLACK);
    }

这篇文章很有帮助。 article link

关于android - SearchView 删除蓝色焦点线并在特定位置显示光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20085725/

相关文章:

android - AutoCompleteTextView.isPopupShowing() 始终为 FALSE

java - 让 AutoCompleteTextView 响应 SimpleAdapter 中的更改

android - 如何绘制图像的 'shadow' 版本?

android - Android 上的简单标记检测(不是传统的增强现实),可能使用 OpenCV

c# - 在 Outlook mailitem.To 字段中设置焦点使用 c#?

c# - 在 .NET 应用程序中使用 Tab 键更改焦点的异常

javascript - React 将焦点放在输入[类型 ="number"] 上,并进行条件渲染

android - 第二次单击时显示下拉菜单 - 带有下拉菜单的 AutoCompleteTextView

android - 在 ListView 中突出显示整个焦点行

javascript - 有没有办法在 Android 中为 Safari 启用 JavaScript 错误/调试控制台?