Android之怎么隐藏EditText光标和自动显示键盘

时间:2021-08-18 08:56:39

不废话,先爆照

Android之怎么隐藏EditText光标和自动显示键盘



Android之怎么隐藏EditText光标和自动显示键盘


让EditText不现实光标

关键代码:
android:focusable="true"
android:focusableInTouchMode="true"

写这个父视图里面 

下面是全部代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context=".HomeActivity">

	<RelativeLayout
			android:id="@+id/rl_search"
			android:layout_width="match_parent"
			android:layout_height="wrap_content"
			android:focusable="true"
			android:focusableInTouchMode="true"
			android:background="@color/greyBe"
			android:paddingTop="4dp"
			android:paddingBottom="4dp"
			android:paddingLeft="8dp"
			android:paddingRight="8dp">

		<RelativeLayout
				android:id="@+id/bt_nearby_search"
				android:layout_width="match_parent"
				android:layout_height="35dp"
				android:layout_centerInParent="true"
				android:background="@drawable/bg_search"
				android:padding="4dp"
				android:gravity="center">

			<Button
					android:id="@+id/btn_search_icon"
					android:layout_width="16dp"
				    android:layout_height="16dp"
					android:layout_centerVertical="true"
					android:background="@mipmap/icon_search"
					android:clickable="false" />
			<Button
					android:layout_width="match_parent"
				    android:layout_height="25dp"
				    android:id="@+id/home_search"
					android:layout_toRightOf="@+id/btn_search_icon"
					android:layout_centerVertical="true"
					android:background="@null"
					android:textSize="12sp"
					android:hint="@string/search_hint"/>
		</RelativeLayout>
	</RelativeLayout>

	<com.kuyu.kuyucontact.ui.view.PinnedSectionListView
			android:id="@+id/lv_contact"
			android:layout_toLeftOf="@+id/v_line"
			android:layout_below="@+id/rl_search"
			android:layout_width="match_parent"
			android:layout_height="wrap_content"
			android:scrollbars="none" />

	<TextView
			android:id="@+id/tv_float_letter"
			android:layout_width="80dp"
			android:layout_height="80dp"
			android:background="#F88701"
			android:gravity="center"
			android:layout_centerInParent="true"
			android:textSize="40sp"
			android:visibility="gone" />

	<View
			android:id="@+id/v_line"
			android:layout_width="1dp"
			android:layout_height="match_parent"
			android:layout_toLeftOf="@+id/slideBar"
			android:layout_below="@+id/rl_search"
			android:background="@color/grey" />

	<com.kuyu.kuyucontact.ui.view.SlideIndexBar
			android:id="@+id/slideBar"
			android:layout_width="30dp"
			android:layout_below="@+id/rl_search"
			android:layout_height="wrap_content"
			android:layout_alignParentRight="true" />

</RelativeLayout>
反之,要是想有光标变把属性设为false

实现键盘自动弹出

方法一:

EditText  editText.setFocusable(true);  
editText.setFocusableInTouchMode(true);  
editText.requestFocus();  
MethodManager inputManager =  
(InputMethodManager)editText.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);  
inputManager.showSoftInput(editText, 0);  

方法二:

使用:android:windowSoftInputMode属性

activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。

这个属性能影响两件事情:

【一】当有焦点产生时,软键盘是隐藏还是显示

【二】是否减少活动主窗口大小以便腾出空间放软键盘

它的设置必须是下面列表中的一个值,或一个state…”值加一个adjust…”值的组合。在任一组设置多个值——多个state…”values,例如&mdash有未定义的结果。各个值之间用|分开。例如:<activity android:windowSoftInputMode="stateVisible|adjustResize". . . >

在这设置的值("stateUnspecified""adjustUnspecified"以外)将覆盖在主题中设置的值


各值的含义:

【A】stateUnspecified:软键盘的状态并没有指定,系统将选择一个合适的状态或依赖于主题的设置

【B】stateUnchanged:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示

【C】stateHidden:用户选择activity时,软键盘总是被隐藏

【D】stateAlwaysHidden:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的

【E】stateVisible:软键盘通常是可见的

【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态

【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示

【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间

【I】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分



我在我的项目的用的stateVisible属性

在AndroidManifest.xml里面添加

Android之怎么隐藏EditText光标和自动显示键盘