android 开发实战问题笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qsh18968155492/article/details/77980917

作为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文件,放到项目根目录即可

猜你喜欢

转载自blog.csdn.net/qsh18968155492/article/details/77980917