开发时遇到的坑

3 篇文章 0 订阅
1 篇文章 0 订阅

OkHttp 会针对 gzip 的头进行自动判断是否解压

RecycleView+EditText

RecycleView item包含EditText。通过给EditText添加addTextChangedListener监听从而完成修改数据的时候会造成修改数据混乱。原因是 RecycleView的复用机制。解决办法在给EditText添加监听前判断该EditText是否已经存在监听,若存在则删除重新添加。
代码:

//判断是否添加监听
if(editLongText.getTag() instanceof TextWatcher){     editLongText.removeTextChangedListener((TextWatcher) editLongText.getTag());
        }
//添加监听
TextWatcher textWatcher = new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {
             if(Integer.parseInt(holder.itemView.getTag().toString()) == position) {

                }
            }
        };
        editLongText.addTextChangedListener(textWatcher);
        editLongText.setTag(textWatcher);
// 模拟点击事件

performClick();

RecycleView+CheckBox

RecycleView中包含CheckBox,通过点击CheckBox再调用notifyDataSetChanged来刷新RecycleView列表数据,如果notifyDataSetChanged的调用在onBindViewHolder方法内,会报IllegalStateException Cannot call this method while RecyclerView is computing a layout or scrolling 错误
原因是onBindViewHolder本身就是用来刷新item数据的,在该方法内调用notifyDataSetChanged会造成onBindViewHolder频繁调用。
解决方法:
1.把notifyDataSetChanged放在onBindViewHolder外调用。参考
stackoverflow
2.使用handler,等RecyclerView完成layout()再调用notifyDataSetChanged

Fragment + EditText

在onCreateView中为EditText赋值,会造成赋值失败,显示的值可能是上一次添加fragment的值,解决方法把复制代码放在onResume()中执行。

高德地图

MapView添加动画 setAnimation 后出现穿透现象,显示了前一个界面上的东西。使用TextureMapView替代即可。
原因:MapView是一个SurfaceView控件,会出现穿透现象。

RecycleView 多次设置分割线

addItemDecoration 多次调用会撑大item的高度,分割线会离底部越来越远

gradle升级后生成不出apk

升级到gradle3.0后,生成签名apk
这里写图片描述
在3.0前,点击 locate 进入文件夹能看得到生成的apk文件,3.0开始会在该文件下生成release的文件夹,apk会在该文件夹内,并且会生成一个关于apk信息的json文件
这里写图片描述
这里写图片描述
这里写图片描述
未完待续

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值