EditText默认不获取焦点,隐藏软键盘,焦点监听,输入监听,样式设置

简介: EditText默认不获取焦点,隐藏软键盘,焦点监听,输入监听,样式设置

EditText可输入,但页面进来的时候默认不获取焦点,并不弹出软键盘。


手动点击的时候EditText获取焦点,弹出软键盘,但不把底部的布局顶上来。


1.在manifest中给Activity添加windowSoftInputMode属性


<activity

android:name=".MainActivity"

android:windowSoftInputMode="stateUnspecified|adjustResize|stateHidden|adjustPan">

</activity>


stateUnspecified:软键盘默认的设置


adjustResize:当前Activity自动调整屏幕大小留出软键盘的空间


stateHidden:当前Activity隐藏软键盘


adjustPan:如果EditText被软键盘覆盖了一半,当此EditText获取焦点的时候,当前Activity会自动调整让EditText完全显示,避免被软键盘遮挡


2.在EditText布局之前加上一个空布局,并requestFocus,相当于是把焦点抢了,这样EditText就获取不到焦点了


布局:

<LinearLayout
                        android:id="@+id/getfocus"
                        android:layout_width="0px"
                        android:layout_height="0px"
                        android:focusable="true"
                        android:focusableInTouchMode="true"
                        android:orientation="horizontal">
                        <requestFocus />
                    </LinearLayout>
                    <EditText
                        android:id="@+id/et_tel"
                        style="@style/styleEditText"
                        android:hint="请输入手机号"
                        android:inputType="number" />


3.主动获取焦点弹出软键盘

<activity android:name=".activity.SearchActivity"
                  android:windowSoftInputMode="stateVisible"/>


4.EditText焦点监听

EditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {  
    @Override  
    public void onFocusChange(View v, boolean hasFocus) {  
        if(hasFocus){//获得焦点  
        }else{//失去焦点  
        }  
    }             
});


5.EditText输入监听

EditText.addTextChangedListeneer(new TextWatcher){
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
//EditText改变之前
 } 
@Override 
public void onTextChanged(CharSequence s, int start, int before, int count) {
//改变中
 } 
@Override 
public void afterTextChanged(Editable s) {
//改变后
 }
 });


6.样式设置去掉下划线 android:background="@null"


然后加上.9的圆角图或shape,写一个selector,选中加上颜色


<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_window_focused="false" android:drawable="@drawable/edittext_normal" />

<item android:state_focused="true" android:drawable="@drawable/edittext_focused" />

</selector>

7.禁止输入


mEditText.setKeyListener(null);


目录
相关文章
|
7月前
|
JavaScript 前端开发 数据安全/隐私保护
获取焦点后隐藏提示内容的输入框
获取焦点后隐藏提示内容的输入框
59 0
输入框禁用状态 可清空输入框如何实现?组件写的
输入框禁用状态 可清空输入框如何实现?组件写的
|
7月前
关于实现点击父元素点击后显示子元素,但点击子元素不消失的方法(阻止事件传递)
关于实现点击父元素点击后显示子元素,但点击子元素不消失的方法(阻止事件传递)
48 0
|
Android开发
android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置
android 自定义登陆对话框基类封装,且随着软键盘的弹起自动移动位置
有关tabBarController对下面按钮的监听
有关tabBarController对下面按钮的监听
228 0
有关tabBarController对下面按钮的监听
|
JavaScript 前端开发
页面一刷新让文本框自动获取焦点-- 和自定义v-focus指令
页面一刷新让文本框自动获取焦点-- 和自定义v-focus指令
|
前端开发 数据安全/隐私保护 JavaScript
为button设置回车事件
//为keyListener方法注册按键事件 document.onkeydown=keyListener; function keyListener(e){ // 当按下回车键,执行我们的代码 if(e.
942 0
|
Java Android开发
【Android 开发入门】为按钮添加Click单击事件处理程序,显示/隐藏另一个按钮
在上篇“走进Android开发的世界,HelloWorld”,我们创建了一个Android 项目 HelloWorld,并演示了如何通过USB连接手机查看运行效果;这里讲一下如何为应用添加一个按钮,并为按钮添加Click单击事件处理程序,显示/隐藏另一个按钮。
1839 0