這篇文章會記錄我在項目開發過程中遇到的一些值得記錄的簡短知識點或經驗,有些內容會比較基礎,大佬請略過。這篇文章會持續不定時更新。
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 方法只會去除字符串頭部和尾部的空格,想去除字符串中間空格不適用。