我開始使用ContextThemeWrapper
動態地將樣式應用於ImageButton
;基於an answer到我的另一個問題,並回答其他similarquestions。爲什麼ContextThemeWrapper現在僅限於支持庫組?
ContextThemeWrapper wrapper = new ContextThemeWrapper(getContext(), mStyleRes);
mImageButton = new AppCompatImageButton(wrapper, null, 0);
但最近皮棉錯誤開始出現在ContextThemeWrapper
構造函數聲明:
ContextThemeWrapper
只能在同一庫 組中稱爲(的groupId = com.android.support)
我注意到標有@RestrictTo(LIBRARY_GROUP)
註解的類,這會導致lint錯誤出現。但我找不到任何有關的信息,爲什麼它僅限於com.android.support
庫組。
據我所知,這是以編程方式將風格,主題或主題疊加到View
的唯一方法;除了在構造函數中將默認樣式屬性設置爲第三個參數。所以我想知道爲什麼它的使用會受到限制;在使用支持庫之外的類時是否存在一些問題?會不會有我不知道的副作用?
唯一similar question,我所遇到的是一個約一(現在是固定的)的bug;導致此lint錯誤顯示在子類AppCompatActivity
的onCreate
方法中。我認爲這不是一個錯誤,而是一個故意的限制;我想知道背後的原因。
我應該注意;這個限制(截至目前)實際上似乎對使用ContextThemeWrapper
的代碼沒有影響。它編譯和運行良好,並按我預期的那樣工作。
我在'import android.support.v7.view.ViewPropertyAnimatorCompatSet'中看到同樣的問題,但我找不到替代方法,有什麼想法? – TheHebrewHammer
@TheHebrewHammer'android.support.v4.view.ViewPropertyAnimatorCompat' – ephemient
只需將'support.v7.view'導入爲'android.view',有時解決方案比您想象的要容易得多:)哈哈 –