zoukankan      html  css  js  c++  java
  • 【android】开发笔记系列:行为篇

    1:键盘遮挡了输入框

    在androidManifest.xml里,对应的activity里设置键盘模式

     <activity
                android:name="活动名称"
                android:windowSoftInputMode="adjustPan">


    2:改变输入框回车键为“下一个”

    前提:需要设置EditText为单行模式android:singleLine="true",否则回车键默认就是换行的。

    在EditText的xml布局文件

    android:imeOptions="actionNext"

    或者后台代码

    EditText对象.setImeOptions(EditorInfo.IME_ACTION_NEXT); 

    在一堆输入框中,最后一个输入框我们一般都希望为“完成”,即点击之后隐藏输入框

    同理:在xml我们需要设置为

     android:imeOptions="actionDone"

    后台代码

    EditText对象.setImeOptions(EditorInfo.IME_ACTION_DONE);

     隐藏/显示软键盘

    如果遇到弹不出键盘,可能是对应的窗体(activity刚展示,alertdialog刚弹出)还未初始化完成,这时候,只要延迟执行若干毫秒就可以了

    new Handler().postDelayed(new Runnable(){    
        public void run() {    
        //execute the task    
        }    
     }, delay);   

    改变输入框光标样式

    在xml里设置

    android:textCursorDrawable

    代码动态设置

    drawable文件

    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <!-- 圆角,你也可以对不同的角设置不同的数值 -->
        <corners android:radius="1dp"/>
    
        <!-- 形状的填充色 -->
        <solid android:color="@color/orange"/>
        <!-- 光标的宽度 -->
        <size android:width="2dp" />
    </shape>

    调用

    /**
         * 设置输入框的光标样式
         *
         * @param editText
         * @param resourceId
         */
        public static void setCursorDrawable(EditText editText, int resourceId) {
            try {
                Field f = TextView.class.getDeclaredField("mCursorDrawableRes");
                f.setAccessible(true);
                f.set(editText, resourceId);
            } catch (NoSuchFieldException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
    
        }

    隐藏软键盘

    ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

    显示软键盘,控件ID可以是EditText,TextView

    ((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).showSoftInput(控件对象, 0);

     去掉默认的下拉效果

    android:overScrollMode="never"

    检测Emoj表情图片

    /**
         * 检测是否有emoji表情
         *
         * @param source
         * @return
         */
        public static boolean containsEmoji(String source) {
            int len = source.length();
            for (int i = 0; i < len; i++) {
                char codePoint = source.charAt(i);
                if (!isEmojiCharacter(codePoint)) { //如果不能匹配,则该字符是Emoji表情
                    return true;
                }
            }
            return false;
        }
    
        /**
         * 判断是否是Emoji
         *
         * @param codePoint 比较的单个字符
         * @return
         */
        private static boolean isEmojiCharacter(char codePoint) {
            return (codePoint == 0x0) || (codePoint == 0x9) || (codePoint == 0xA) ||
                    (codePoint == 0xD) || ((codePoint >= 0x20) && (codePoint <= 0xD7FF)) ||
                    ((codePoint >= 0xE000) && (codePoint <= 0xFFFD)) || ((codePoint >= 0x10000)
                    && (codePoint <= 0x10FFFF));
        }
  • 相关阅读:
    vue事件处理器--v-on
    vue循环-- v-for
    node-Socket编程
    JsonWebToken
    Mongodb 数据库
    Nodejs库-EXPRESS
    yarn和npm的区别
    Vue学习笔记【22】——Vue中的动画(列表的排序过渡)
    Vue学习笔记【21】——Vue中的动画(v-for 的列表过渡)
    Vue学习笔记【20】——Vue中的动画(使用动画钩子函数)
  • 原文地址:https://www.cnblogs.com/kimmy/p/4844498.html
Copyright © 2011-2022 走看看