Android:显示键盘时仅在编辑文本中显示光标

标签 android android-edittext text-cursor

如何在显示键盘时只显示 EditText 的光标?

目前,即使 EditText 未激活且键盘被隐藏,光标仍在闪烁,这真的很烦人。

这是我的布局的样子:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main_root"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white" >

    <ImageButton
        android:id="@+id/activity_main_add_button"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:background="@drawable/button"
        android:contentDescription="@string/desc_add"
        android:onClick="addGame"
        android:src="@android:drawable/ic_input_add"
        android:tint="@color/gray" />

    <View
        android:id="@+id/stub1"
        android:layout_width="2dp"
        android:layout_height="40dp"
        android:layout_toRightOf="@id/activity_main_add_button"
        android:background="@color/light_gray" />

    <ImageButton
        android:id="@+id/activity_main_menu_button"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_toRightOf="@id/stub1"
        android:background="@drawable/button"
        android:contentDescription="@string/desc_add"
        android:onClick="showMenu"
        android:scaleType="fitXY"
        android:src="@drawable/square_button"
        android:tint="@color/gray" />

    <View
        android:id="@+id/stub2"
        android:layout_width="2dp"
        android:layout_height="40dp"
        android:layout_toRightOf="@id/menu_button"
        android:background="@color/light_gray" />

    <EditText
        android:id="@+id/activity_main_search"
        android:layout_width="fill_parent"
        android:layout_height="40dp"
        android:layout_toRightOf="@id/stub2"
        android:background="@drawable/default_background"
        android:gravity="center"
        android:hint="@string/search_game"
        android:inputType="text"
        android:textColor="@color/black"
        android:textSize="20sp"
        android:textStyle="bold" />

    <ListView
        android:id="@+id/activity_main_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/activity_main_add_button"
        android:layout_margin="10dp"
        android:divider="@color/white"
        android:dividerHeight="10dp" >
    </ListView>

</RelativeLayout>

谢谢

最佳答案

  1. 在您的 EditText 下的 xml 中设置:

    android:cursorVisible="false"
    
  2. 设置onClickListener:

    iEditText.setOnClickListener(editTextClickListener);
    
    OnClickListener editTextClickListener = new OnClickListener() 
    
    {
    
        public void onClick(View v) 
        {
             if (v.getId() == iEditText.getId()) 
            {
                iEditText.setCursorVisible(true);
            }
    
        }
    };
    

关于Android:显示键盘时仅在编辑文本中显示光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711075/

相关文章:

java - 获取自定义对话框中包含的 EditText 的值

vim - ViM 中的 CursorLine 高亮显示,仅高亮显示行号和行首/行尾的空格/制表符

Android 中的 java.lang.NullPointerException 错误

android - 更新数据库不起作用-Android

java - 使用远程 View 设置卡片 View 的背景

java - 相同的 XML,不同的行为

java - 基于编辑文本输入的微调器值

c - 在远程终端上隐藏光标

ios - 如何获取 UITextField 光标更改事件?

php - 我如何在 php 中验证 google play 应用内购买?