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));
        }
  • 相关阅读:
    基于element-ui图片封装组件
    计算时间间隔具体每一天
    C语言学习笔记 —— 函数作为参数
    AtCoder Beginner Contest 049 题解
    AtCoder Beginner Contest 048 题解
    AtCoder Beginner Contest 047 题解
    AtCoder Beginner Contest 046 题解
    AtCoder Beginner Contest 045 题解
    AtCoder Beginner Contest 044 题解
    AtCoder Beginner Contest 043 题解
  • 原文地址:https://www.cnblogs.com/kimmy/p/4844498.html
Copyright © 2011-2022 走看看