本篇文章记录我在Android的开发过程中遇到的问题以及解决方案,希望能够帮到需要的人
1,解决androidStudio卡顿的帖子:http://blog.csdn.net/cswhale/article/details/51028242
2,通过屏幕比例换算得到的文字的尺寸,并通过settextsize()的方式设置文字的大小会发现,文字变得额非常大,真确的做法应该是textview.getpaint()settextsize();
3,http://blog.csdn.net/lintcgirl/article/details/48312309更改复选框大小
4,RecyclerView自动滑动的原因与解决方法
原因:
页面切换时RecyclerView获得了焦点,RecyclerView的focusableOnTouchMode属性默认是真的,所有页面切换时RecyclerView自动获得焦点就滚动到头部。抢焦点的问题。
解决:
将RecyclerView的父控件的设置Android:focusableInTouchMode =“true”。
不行就再加上android:focusable =“true”
5,自定义drawable可以通过设置level结合ondraw方法完成动态的效果
6,如果有一段代码执行不到,而没有任何提出,程序依然运行,但是就是代码不执行,这种情况你应该考虑是不是出现了异常被捕捉之后下面的代码不执行了,而且
异常捕获之后没有做任何输出
如图7所示,如果我们要在标签中覆写布局属性,必须要将layout_width和layout_height这两个属性也进行覆写,否则覆写效果将不会生效。
如图8所示,线性布局一定要设置方向,即使编译能够通过也不要舍弃这个设置,本人已经吃亏过两次了,愣是布局显示不出来,线性布局默认是水平方向,如果第一个空间占满了,那么后面的空间就显示不出来了
9,radiioButton去除默认的背景方法:机器人:背景= “@彩色/透明”
机器人:背景= “@空”
两种方法都可以,但是在android7.0以上的版本上用第一种水波纹效果依然存在而且水波纹的位置是偏离点击位置的,推荐使用第二种方法
10,会导致点击对话框外部无法消失的原因
WindowManager.LayoutParams lp = win.getAttributes();
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
应当设置为
lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
11,工具栏上的菜单同时显示图标和标题的方法:
应用:actionLayout指向了一个布局
12,GIT中一种错误的解决
无法锁定参考
https://segmentfault.com/a/1190000005346163
13,RadioGroup中如果让所有的子RadioButtom都不选中,应该调用RadioGroup中的,不然可能会导致无法选中的状态
ragroup.clearCheck();
14,滑行在复用控件中加载图片避免混乱的方法:让某个ImageView的加载图片之前调用:
Glide.clear(imageView);
15,
<include
layout="@layout/item_mission"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
通过这种方式引入外部的一个布局,也可以指定一个ID的,但是这个ID会覆盖引入的布局的顶层控件的ID,可能会造成控件找不到
16,
recyclerLayout.setAdapter(adapter);
recyclerLayout.setLayoutManager(new GridLayoutManager(mContext, 4));
以上代码颠倒了,这样写会导致没法设置某个条目独占一行,应该反过来写
17,
在磁盘上不存在。
安装APK时出错
出现这个错误,你可能会以为重建一下?清洁一下?手机拔掉重插一下?大部分情况下切换分支会出现这个问题,其实androidStudio还有一个同步功能,也用一下试试哦
18,
setUserVisibleHint
关于片段的这个方法,并不会在像我们想的那样会自动调用,自动调用的情况只会当fragmen用于viewpager中的时候,我们应该,我们应该考虑监听onhidechange事件
19
错误:(243)标记<activity>属性名称包含无效字符' - '。
在编译的时候总是出现类似这种错误,怎么查都查不出原因,这时候可以考虑是不是因为开启了全角拼写导致的
20,module中的r文件总是生成不了make一下这个模块
https://blog.csdn.net/qwp767972675/article/details/52713738
21,可以将gradle-wrapper.properties文件中的地址换成本地gradle这个路径以便加快速度
#Fri Aug 04 13:33:17 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=file\:/C:/plugin/gradle-4.10-all.zip
22,adb.exe已停止工作解决方法:
启动窗口任务管理器,关闭所有关于手机ADB链接的进程,主要是360手机助手,360游戏大厅,豌豆荚,腾讯手机管家之类,然后再次运行即可
23,当引入第三方mudule的时候,有时候运行项目报错如下:找不到“xxx.so”
这时候考虑模块与应用模块中的支持的库不统一导致的,这时候就需要将应用某些不需要支持的平台的文件夹删除,或者将
新引入的模块的所以文件夹添加相应的支持的平台
24
在布局使用片段
<fragment
android:id="@+id/fl_video"
class="camera.camera.CameraFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
以下是CameraFragment的实现
public class CameraFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
progressDialog = new ProgressDialog(getActivity());
progressDialog.setMessage("视频压缩中");
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_capture, container, false);
}
}
遇到一个问题就是:
试图实例化一个不是片段的类xxx)
想使用android.support.v4.app.Fragment,需要活动继承android.support.v4.app.FragmentActivity。或者直接继承
AppCompatActivity即可
25,https: //blog.csdn.net/qq_31471291/article/details/78454478通过tcp链接adb进行调试
26,https://blog.csdn.net/gsls200808/article/details/53022514
Intellij IDEA使用git提交代码时去掉代码分析代码分析的提示
可以提高提交速度
27,
解决android sdk运行出现无法安装* smartsocket * listener:无法绑定到127.0.0.1:5037:的问题
https://www.cnblogs.com/huangenai/p/7472131.html
28、Could not HEAD 'https解决方法
29、Gradle distribution contains too many directories. Expected to find exactly 1 directory.
打开 gradle安装包看看里面是否只有一个文件夹,如果多余则删除多余的文件夹
30,彻底清除androidstudio代理设置
清除该文件下相关配置才可以C:\Users\(username)\.gradle\gradle.properties
31,
包重复依赖问题解决
gradlew :demo:dependencies
32.
adapter.setHeaderView(headerView)
调用这个api之后如果立即更新headerview中的内容可能会显示不出来,因为headerView可能需要重新渲染
33.如果android初次运行项目总会下载一下奇奇怪怪的依赖,但其实项目中并没有依赖,那么可以试试删除.idea文件夹和.gradle
文件夹
34.本人最近调回dialogFragment,在华为手机上无论怎么设置dialog样式,顶部状态栏都显示灰色背景,无奈之下,用了这招:
dialog.window?.setLayout(ScreenUtils.getScreenWidth(), ScreenUtils.getScreenHeight())
然后就好了,具体原因我也不太清楚,我觉得安卓因为这个沉浸式的状态栏把一些api搞的好乱,而且一些style也是毫无规则,
苦了这些劳苦码农
35.开发过程当我们新依赖某个第三方的库,有可能存在重复依赖的情况,有时候我们很难找到具体是哪一个东西重复了,这时候可以在github上查看该库的源码,在其Gradle文件中查看所依赖第三方库,然后用exclude移除即可
36,关于Glide加载图片报错You must not call setTag() on a view Glide is targeting
解决方案:https://blog.csdn.net/qq_26411333/article/details/52034444
37,天坑,TextView误用"inputType"属性会导致点击事件失效
https://blog.csdn.net/qq_33724789/article/details/78428627
其实应该是添加android:inputType="text"这个属性之后,文本是可选择的,于是该textview按下的事件是就被拦截了
38,手动下载gradle文件并安装的方法https://www.jianshu.com/p/7d0192c9dbfe
39,文件路径不能包含冒号,很多时候我们喜欢用形如2019年9月11日15:15:25 这样的时间来命名文件路径
但是这样会导致很多应用解析文件时出错,就是因为日期中包含了冒号