资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

android输入框,Android输入框字体变成白色

Android 丨 限制输入框4个中文字符或12个英文字符

Android限制输入框 4 个中文字符(汉字/Emoji)或 12 个英文字符(字母/数字)

站在用户的角度思考问题,与客户深入沟通,找到化德网站设计与化德网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广、域名与空间、网站空间、企业邮箱。业务覆盖化德地区。

昨天产品提出的一个Bug,用户姓名需要添加长度限制,但对中、英文的限制要求又不一致,所以就不能只用字符串的长度去判断了。

不管是中文还是英文字符,在编译的时候,最终都会被计算机转成二进制编码,所以我们的解题思路就是以 Byte 字节为核心,在 UTF-8 编码下,将中英文字符转成 Byte 数组,再计算 Byte 数组所占的空间大小,在输入框的拦截器中进行比较,实现拦截效果。

我们的需求:中英字符比值是1:3,所以我选择了UTF-8编码

查看中英文字符比值,可以在记事本中查看

纯中文:最多输入四个中文字符

英文或数字:最多输入12个英文字符或数字

Android 点击输入框弹出键盘,布局随键盘往上移动

一、效果图:

二、Code:

/**

*  1、获取main在窗体的可视区域

*  2、获取main在窗体的不可视区域高度

*  3、判断不可视区域高度,之前根据经验值,在有些手机上有点不大准,现改成屏幕整体高度的1/3

*      1、大于屏幕整体高度的1/3:键盘显示  获取Scroll的窗体坐标

*                          算出main需要滚动的高度,使scroll显示。

*      2、小于屏幕整体高度的1/3:键盘隐藏

*

* @param main 根布局 

* @param scroll 需要显示的最下方View

*/

public static void addLayoutListener(final View main, final View scroll) {

main.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

    @Override

    public void onGlobalLayout() {

        Rect rect = new Rect();

        main.getWindowVisibleDisplayFrame(rect);

        int screenHeight = main.getRootView().getHeight();

        int mainInvisibleHeight = main.getRootView().getHeight() - rect.bottom;

        if (mainInvisibleHeight screenHeight / 4) {

            int[] location = new int[2];

            scroll.getLocationInWindow(location);

            int srollHeight = (location[1] + scroll.getHeight()) - rect.bottom;

            main.scrollTo(0, srollHeight);

        } else {

            main.scrollTo(0, 0);

}

}

});

}

三、调用方式:

在Activity的onCreate()中调用,

仅此记录。

Android手机数字键盘遮住输入框问题解决

在H5页面设计过程中,Android手机经常遇到数字键盘遮住输入框的问题,该问题无法使用focus事件来进行解决,因为当把数字键盘折叠之后,再次点击输入框时无法触发focus事件。

使用click事件来解决此类问题(click事件触发如下函数):


当前题目:android输入框,Android输入框字体变成白色
标题URL:http://cdkjz.cn/article/dsgeipd.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220