美文网首页
项目遇到的坑

项目遇到的坑

作者: 墨源为水 | 来源:发表于2017-04-14 11:45 被阅读136次

整理出这些问题分享给大家,是为了避免大家在遇到此类坑时,犯同样错。

一.Xstream遇到的坑

1.对于Xml解析实体,在更新版本时,增加了字段,老版本发生解析错误,无法解析出相应实体

1.1原本xml解析代码

public static <T> T toBean(String xmlStr, Class<T> cls) {
        XStream xstream = new XStream(new DomDriver());
        xstream.processAnnotations(cls);
        return (T) xstream.fromXML(xmlStr);
    }

这样的代码的确可以解析出实体,可是在拓展时,就出现如上问题。
1.2改进之后xml解析代码

public static <T> T toBean(String xmlStr, Class<T> cls) {
        XStream xstream = new XStream(new DomDriver()) {
            @Override
            protected MapperWrapper wrapMapper(MapperWrapper next) {
                return new MapperWrapper(next) {
                    @Override
                    public boolean shouldSerializeMember(Class definedIn, String fieldName) {
                        if (definedIn == Object.class) {
                            return false;
                        }
                        return super.shouldSerializeMember(definedIn, fieldName);
                    }
                };
            }
        };
        xstream.processAnnotations(cls);
        return (T) xstream.fromXML(xmlStr);
    }
2.对于编辑后台Xml文件时,使用默认编辑器,传到前台会默认带“\uFEFF”字段串问题

2.1问题详细描述
今天刚刚在后台改了升级接口的xml文件,我当时是用Windows自带文本编辑器编辑的,修改了xml内容,可是改完后,安卓前台出现“xml解析错误”问题,我以为我xml的换行有问题,结果我多次修改后,还是出现“xml解析错误”问题,然后我选择安卓前台调试,发现后台得到的字符串,在java前台使用时,字符串前面总是带“\uFEFF”字符串,查阅资料得知这是带BOM头的UTF-8的编码字符集,这是为了兼容UTF-16等编码字符集,但是Java处理此编码时,会默认加“\uFEFF”字符串。

2.2问题得到的解决方法
我的解决方法是,用默认编码字符集的EditPlus编辑器新建了此xml文件,将老文件的内容复制到此文件内,然后这个问题才得以解决。

二.键盘弹起,按钮被遮盖问题

1.详细问题描述

在诸如登录界面时,键盘弹起,总是遮盖住登录按钮,这大打折扣了用户体验,为了优化,我封装了工具类,只需传Activity,rootview和按钮view。但是在遇到RelativeLayout布局时出现了问题,键盘会将layout_alignParentBottom属性为true的ViewGroup顶起,原本代码如下:

activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

登录界面如下:

图片.png

键盘弹起时出现的效果如下:

图片.png
2.问题得到的解决方法
if(!(rootView instanceof RelativeLayout)){
    activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN | WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
}

开发App都绕不过的坑-代码兼容性

安卓开发比IOS开发区别最大的在于一点:安卓碎片化,这样大大增加了代码的开发难度性,与减小了App的稳定性。

关于screenOrientation的笔记

android:screenOrientation       =         ["unspecified" | "behind" |

                                     "landscape" | "portrait" |
                                     "reverseLandscape" | "reversePortrait" |
                                     "sensorLandscape" | "sensorPortrait" |
                                     "userLandscape" | "userPortrait" |
                                     "sensor" | "fullSensor" | "nosensor" |
                                     "user" | "fullUser" | "locked"]

其中sensorLandscape就是横屏根据重力上下翻转,sensorPortrait竖屏根据重力上下翻转。

后期会不定时更新此文章

相关文章

  • 项目遇到的坑

    整理出这些问题分享给大家,是为了避免大家在遇到此类坑时,犯同样错。 一.Xstream遇到的坑 1.对于Xml解析...

  • 新项目遇到的坑

    用swift写项目,OC 的或 | 在swift里面是不可用的,正确方法:[.old, .new] webview...

  • 项目中遇到的坑

    一、JSONModel-服务器返回的数据中有id,description等关键字 问题:description方法...

  • 5.60 项目遇到坑

    if(CommonUtil.notNull(res) && res.isResult() && CommonUti...

  • IOS 上传IPA遇到的问题

    前言: 最近在上传iOS应用的项目,遇到了很多坑,每次自己遇到坑的时候就想记录下来~~~ 我遇到的第一个坑 原因是...

  • 项目集成PolycomSDK遇到的坑

    估计也没人用这个,自己记录防止后面忘记。添加PolyCom的坑:1.报错 file not fou...

  • Swift项目运行遇到的坑

    接触一个Swift项目遇到一些bug,记录下 1、Kingfisher第三库里面报错,解决办法在Podfile文件...

  • nuxtjs重构项目遇到的坑

    VUE-TO-NUXT 之前博客是用vue写的,由于SPA应用对SEO不友好,所以决定把项目用nuxt重构。 SP...

  • react项目中遇到的坑

    table表格checkbox全选 模态框中嵌入表格并且设置了rowselection属性,默认设置,未清算的数据...

  • Vue 项目中遇到的坑

网友评论

      本文标题:项目遇到的坑

      本文链接:https://www.haomeiwen.com/subject/lmrwattx.html