前言
本文是一篇譯文,這篇是這個系列的第四篇。講述的是Android開發中遇到的一些好用的小技巧,或者一些實用的API,很多人都知道,但也有人不知道,記錄下來,如果能幫助到大家,也是極好的。由於不是嚴格的博文,所以翻譯也不那麼嚴格,有些工具和類我也會經常用,所以我會根據自己的想法去寫。有些地方坐在並沒有將這個工具的作用講出來,我會補充上去。
正文
Activity.isChangingConfigurations ()——如果在 Activity 中 configuration 會經常改變的話,使用這個方法就可以不用手動做儲存狀態的工作了。
SearchRecentSuggestionsProvider——可以建立最近提示效果的 provider,是一個簡單快速的方法。
ViewTreeObserver——這是一個很棒的工具。可以進入到 VIew 裡面,並監控 View 結構的各種狀態,通常我都用來做 View 的測量操作(自定義檢視中經常用到)。
org.gradle.daemon=true——這句話可以幫助減少 Gradle 構建的時間,僅在命令列編譯的時候用到,因為 Android Studio 已經這樣使用了。
DatabaseUtils——一個包含各種資料庫操作的使用工具。
android:weightSum (LinearLayout)——如果想使用 layout weights,但是卻不想填充整個 LinearLayout 的話,就可以用 weightSum 來定義總的 weight 大小。
android:duplicateParentState (View)——此方法可以使得子 View 可以複製父 View 的狀態。比如如果一個 ViewGroup 是可點選的,那麼可以用這個方法在它被點選的時候讓它的子 View 都改變狀態。
android:clipChildren (ViewGroup)——如果此屬性設定為不可用,那麼 ViewGroup 的子 View 在繪製的時候會超出它的範圍,在做動畫的時候需要用到。
android:fillViewport (ScrollView)——在這片文章中有詳細介紹文章連結,可以解決在 ScrollView 中當內容不足的時候填不滿螢幕的問題。
android:tileMode (BitmapDrawable)——可以指定圖片使用重複填充的模式。
android:enterFadeDuration/android:exitFadeDuration (Drawables)——此屬性在 Drawable 具有多種狀態的時候,可以定義它展示前的淡入淡出效果。
android:scaleType (ImageView)——定義在 ImageView 中怎麼縮放/剪裁圖片,一般用的比較多的是“centerCrop”和“centerInside”。
Merge——此標籤可以在另一個佈局檔案中包含別的佈局檔案,而不用再新建一個 ViewGroup,對於自定義 ViewGroup 的時候也需要用到;可以通過載入一個帶有標籤的佈局檔案來自動定義它的子部件。
AtomicFile——通過使用備份檔案進行檔案的原子化操作。這個知識點之前我也寫過,不過最好還是有出一個官方的版本比較好。