纵横开发也多年了,开发过程中总会有一些疑难杂症,意想不到的bug问题等,在此开帖记录备用也方便他人
1. textview设置单行属性singleline为true后在viewpager和recyclerview中横向滑动不顺畅造成卡顿的感觉?
原因:滑动不顺畅卡顿通常都是存在事件冲突造成,这个也不列外:textview设置sigleline以后,textview在横向上可以滑动,edittext常设置此属性,对于单行大数据的输入可以前后滑动看数据,但是将其放到viewpager等横向滑动的容器中,textview的横向滑动和viewpager的横向滑动冲突了。所以才会出现上面的问题。可以看一下textview的源码applySingleLine(boolean singleLine, boolean applyTransformation,boolean changeMaxLines)里面描述的很清楚。
解决方案:由于我的需求是文本不需要横向滑动,如果显示不全,直接后面点点点即可,所以替换一种方案,利用lines替代sigleline既可以实现单行,也可以重写textview的setsigleline()方法,不启动横向滑动即可
2. 地图应用开发过程中poi的mark和弹窗infowindow需要注意的点:
在高德地图的使用中添加infowindow显示坐标点的详细信息在很多应用中使用,当前高德地图(3一上版本)将infowindow和marker封装在一块(可以说很屎)在使用过程中有一些需要注意的:
- 在高德地图中设置infowindow很简单,直接设置一个infowindowadapter就好参数是一个监听,在监听方法中返回一个view即可,再返回view的时候注意,高德已经封装了一个背景(奇丑无比),如果想重写了需要在最外层布局中设置背景。
- 添加maker的时候必须设置marker的title,不然是不会弹出infowindow的。
- 点击marker的时候无需其他操作可以自己弹出infowindow,并自动移动到地图的中间,看似很牛掰,可以在移动的过程中我还需要调整地图的层级的奥,避免大量的poi点聚在一起不容易操作,所以这个东西对于大批量poi点来说意义不大。
- 有3可知,为了在点击poi点移动到中间并且扩大地图的层级同时实现那就不能让其直接显示了,设置amap的onmarkerclicklistener(),特别注意此时要返回true,不然还是会传递事件自己显示。通过地图api设置poi到中间并且响应的缩放层级即可,然后调用marker.showinfowindow()即可。
3. httpclient接口访问post读取数据不完整:
httpclient访问php服务器有可能获取到数据不全(即返回的json格式不完整),通过网络搜索包括项目解决将可能原因汇总如下(只是遇到的和网络上说明的,欢迎大家补充):
- php服务器有缓存,接口从缓存区读取数据,缓存区满了,遇到接口的数据量太大,只能将部分的数据存入缓存区,此时获取到的数据不完整。项目出现的是这个。此时想不通的是浏览器和ios偏好一些,可以获取到更多的数据,对于非常大的接口数据,浏览器也没辙。
- php接口对数据进行了gzip压缩,网上看到的。
- 当前手机连接的网络有问题,路由器等对数据传输有限制,数据量太大,超过了此限制,网上了解到的,对于有些公司限制网络访问速度或者数据量有可能出现
- httpclinet 下载图片不全可以参照这个博客:点击打开链接
4. textview动态设置字号时可以直接指定字号单位:
setTextSize(TypedValue.COMPLEX_UNIT_PX,22); //22像素
setTextSize(TypedValue.COMPLEX_UNIT_SP,22); //22SP
setTextSize(TypedValue.COMPLEX_UNIT_DIP,22);//22DIP
5. 点击popwindow外部不能关闭bug解决:
popupWindow.setBackgroundDrawable(new ColorDrawable(0));//popwindow 不设置背景图片点击外部不会消失
6. IntentService出现没有空构造方法异常:
intentservice是平时Android开发很常用的一个异步处理逻辑,正常继承intentservice需要构造方法,系统提示默认生成带有参数name的构造方法,在使用的时候按照正常使用,就会出现上面没有单参数构造方法的异常
解决: 通常intentservices处理单个逻辑,所以在继承的时候直接在子类内部添加无参数构造方法,在方法内部设置好对应的name即可。
7.如何实现动态切换app切换主屏幕图标
参考文章:动态切换app主屏幕图标
网友评论