Android这些坑
来源:互联网 发布:诺基亚商店软件下载 编辑:程序博客网 时间:2024/06/06 08:24
定时任务
1.Timer中执行任务的时候,当执行任务所耗时间大于所设定的时间的时候,会抛出RuntimeException异常,
解决办法:延长周期 或 使用SchedulExecutorService
XML布局
1.当手动添加一个View对象到布局中的时候,XML中定义的宽高属性是没有效果的,需要在代码中通过LayoutParams来设置相应的属性
内存泄漏
1.单例引起的内存泄漏
当你使用静态定义了单例类的应用的时候,当你因为某些原因需要把activity的上下文传进来,当调用方的activity被销毁时,由于该activity的context组建与静态绑定到了一起,所以导致垃圾回收器无法回收该context,从而导致内存泄漏。
解决办法:把context用getApplicationContext替换。
Fragment
1.Fragment与Activity进行接口回调时,如果,activity是数据提供方,那么,可以把Activity的对象以一个静态的方式保存到一个静态类中,public static Activity activity;然后再Fragment中,先把该activity转换为所对应的Activity,再去获取接口的方法。
线程
1.在子线程中是不能弹出Toast的,必须放到UI线程中(可能是因为显示Toast的也是一个控件,而设置控件必须在主线程中进行)
RadioGroup
1. RadioGroup里面的RadioButton不能设置Margin
原因是没有使用RadioGroup.LayoutParams,把LinearLayout.LayoutParams等用RadioGroup.LayoutParams替换。
2. RadioGroup的removeView(index);方法中,index是下标,不可以直接调用getChildCount();方法来获得总大小去循环调用removeView方法,因为RadioGroup中的子控件,不一定是0,1,2,3。。。等。如果要去除所有的子控件,可以调用removeAllViews();方法。
RecyclerView
1.RecyclerView中在使用GridLayout模式的时候,如果仅有两列的时候,当平分宽度的时候,会造成中间间隙过宽。
原因:由于两者都居中了,都给中间留了位置,当然也就造成了更大的空隙
解决办法:
在适配器中的onCreateViewHolder方法中,通过给view设置params,设置的条件是,当position%2==0或者!=0,
判断该给左边setMargin多少,给右边setMargin多少。
2.RecyclerView中使用GridLayout类型的时候,如果,父容器没有使用match_parent的话,中间可能就会产生间隙。
ListView
1. 当采用ArrayAdapter的时候,如果布局文件是TextView,如果该TextView中使用了clickAble=true的话,将会抢夺焦点,导致ListView的点击事件不可用
0 0
- Android这些坑
- 这些年--这些Android
- 这些年我踩过的坑——Android
- Android学习之友盟开发这些坑
- Android学习之友盟开发这些坑
- 2016这些Android技术会很火
- 2016这些Android技术会很火
- 2016这些Android技术会很火
- 2016这些Android技术会很火
- 2016这些Android技术会很火
- 2016这些Android技术会很火
- 2016这些Android技术会很火
- 2016,这些 Android 技术会很火
- Mysql的这些坑
- 你升级Android Studio 3.0正式版了吗?来看看这些坑!
- 这些年Java Android技术经验总结
- 在2016年必火的这些 Android 技术
- 在2016年必火的这些 Android 技术
- java 自定义异常类
- C++中模板的那些事儿
- Android的高级控件
- Spring 中的事务管理
- actionbar默认两边有边距
- Android这些坑
- Android 增量编译-LayouCast的使用及修改
- C语言之_数据类型和控制语句
- 预测未来—10年后我们的生活是什么样子?
- Angularjs 实现 switch 开关
- c++ 学习之路 noexcept
- 2017多益网络内推笔试题
- U-Boot命令手册
- Android例子源码头像设置完美实现