作为iOS程序员,在自学android时,发现很多地方有异曲同工之妙,或者各自都有很好的地方,学习过程中遇到的不少问题,记录一下,可能理解有问题,欢迎指正及交流
1.在设置radioButton的状态颜色时,把normal颜色设置在了checked颜色之前,发现怎么点怎么设置check,颜色都没有发生变化
解决:将normal颜色设置在最后
2.viewPager的更新adapter问题,在activity想更新adapter
解决:重写getItemPosition()方法,return POSITION_NONE;
3.viewPager更新单个adapter问题,只想其中一个或几个
解决:给当前view添加个tag,如setTag(position), 再需要更新的时候判断tag值跟给定值是否相等,如viewPager.getCurrentItem() == (int)view.getTag()?
4.R文件丢失,当你遇到这个问题而且确认自己的代码、布局没有问题时候,如果网上的那些手段都没解决你的问题,不妨试试以下这种方法
解决:打开project目录,删除.gradle和.idea文件夹,重启Android studio
5.设置状态栏颜色
解决:在项目的build.gradle中声明以下依赖: compile'com.githang:status-bar-compat:0.5'
然后在你的Activity中(最好是setContentView()被调用之后)添加以下代码:
StatusBarCompat.setStatusBarColor(this, color);
6. 在使用FrameLayout及RadioGroup实现tabbar的各个界面时,用fragment填充frameLayout后,出现的无法切换fragment的问题。
解决:在fragment中添加如下代码
@Override
public void setMenuVisibility(boolean menuVisible) {
super.setMenuVisibility(menuVisible);
if (this.getView() != null)
this.getView().setVisibility(menuVisible ? View.VISIBLE : View.GONE);
}
7.使用gridview加载大量图片时,OOM及滑动卡顿的问题。
解决:(1):OOM问题:是因为滑动过程中没有及时释放未显示在界面中的图片导致的,通用解决方法是缓存图片并监听gridview的滑动,当图片没显示时就释放掉缓存。至于具体如何操作,网上有大片的代码可以借鉴。
(2)滑动卡顿问题:gridview的item加载图片时,用异步加载即可
8.在使用ExpandableListView时,想要监听点击“标题栏”的事件,做了很多画蛇添足的操作。
解决:直接在ExpandableListView的adapter中的getGroupView()方法中使用方法提供的参数isExpanded,该参数就是反映标题栏是否展开的状态。
附:ExpandableListView展开一个标题栏时隐藏其他标题栏可实现该listview的setOnGroupExpandListener()方法,在该方法中判断标题数组下标
if (groupPosition != i){
listview.collapseGroup(i)
}
9.第一次用Genymotion的时候,模拟器都打开了,跑应用却出错,INSTALL_FAILED_NO_MATCHING_ABIS,网上搜都说是模拟器CPU类型错误,怎么解决呢?
解决:下载插件,将zip文件直接拖拽到player中,重启player即可。下载链接:http://pan.baidu.com/s/1eSeZicM 密码:6fx7
10.用android studio 打包apk的时候,新建完key store文件,打包还是失败,并且报错:
Keystore file 。。。。 not found for signing config 'externalOverride'.
提示说keystore文件没找到(在上面提示的路径中),那是因为我的mac新建的keystore文件默认放到了/Applications/Android Studio.app/Contents/bin/ 这个路径下,而在项目中当然找不到该文件。
解决:找到新建的keystore文件,放到项目根目录即可