这篇文章会记录我在项目开发过程中遇到的一些值得记录的简短知识点或经验,有些内容会比较基础,大佬请略过。这篇文章会持续不定时更新。
1. 如何修改应用名称?
- 修改 AndroidManifest.xml 文件中 application 标签的 label 属性,这里修改的是应用安装界面上显示的应用名称,也是应用市场显示的应用名称;
- 修改 AndroidManifest.xml 文件中主 Activity( action 为 main 的 Activity ) 标签的 label 属性,这里修改的是应用的桌面快捷方式中显示的名称。
2. 在 Retrofit 中,如何控制一个参数传或不传?
如果你不想传某个参数,可以给参数赋值 null,Retrofit 会自动过滤掉值为 null 的参数,不添加到参数列表里。
3. TabLayout 如何设置下划线宽度自适应标题宽度?
在版本号28以上的 support design 库中,Google 添加了一个属性 app:tabIndicatorFullWidth ,设置为 false 则可以自适应标题宽度。
4. Android v2 应用签名
v1签名是对jar进行签名,v2签名是对整个apk签名。
官方介绍就是:v2签名是在整个APK文件的二进制内容上计算和验证的,v1是在归档文件中解压缩文件内容。
新的v2模式签名机制提醒我们在v2签名之后,对apk本身做任何改动都会导致校验不通过的情况,导致在android 7.0以及之上都会安装不成功。
只使用 v2签名的应用在 Android7.0 以下系统会安装失败,提示“找不到安全证书”;在 Android7.0以上的系统则没问题。
只用 v1 签名的应用在全部版本系统都没问题
- 一定可行的方案: 只使用 v1 方案
- 不一定可行的方案:同时使用 v1 和 v2 方案
- 对 7.0 以下一定不行的方案:只使用 v2 方案
5. Retrofit提交数组参数
Retrofit 提交数组类型的参数时,参数的键名必须加上 "[]", 否则会被认为是同名参数然后只传数组中的一个值。
@FormUrlEncoded
@POST("follows")
fun followUsers(@Field("uid") uid: Int, @Field("follow_uid[]") uidList: List<Int>): Flowable<SimpleResp>
6. Glide 加载 gif 图片并播放一次
Glide.with(activity).load(R.drawable.gif_get_gold_coin).into(object : SimpleTarget<Drawable>() {
override fun onResourceReady(drawable: Drawable, transition: Transition<in Drawable>?) {
if (drawable is GifDrawable) {
drawable.setLoopCount(1)
mIvGoldCoin.setImageDrawable(drawable)
drawable.start()
}
}
})
7. 解决 ScrollView 嵌套 Recyclerview 时, 列表显示不全的问题
- 测试单独不嵌套时recyclerview是否可以正常显示完所有的数据
- recyclerview建议设置 android:minHeight ="xxxxxx"
- ScrollView 的高度设置match_parent
- 在ScrollView 中加入 android:fillViewport="true"
- 如果还是无法显示,换成NestScrollView 替换ScrollView测试
8. APP crash之后如何在 Android Studio 中查看崩溃日志?
选择 DEAD 进程即可看到崩溃时的 log
查看应用崩溃日志
9. 去掉 Button 控件的默认边距
android:minHeight="0dp"
只要在按钮的xml标签里加上这么一句话就行了
10. String 的 trim 方法
该方法的注释说明是这样的:
Returns a copy of the string, with leading and trailing whitespace omitted.
所以该 trim 方法只会去除字符串头部和尾部的空格,想去除字符串中间空格不适用。
网友评论