android:theme和app:popupTheme的作用,以及在android 3.0以下不起作用問(wèn)題的解決

在android5.0中,新增了Material Design設(shè)計(jì)語(yǔ)言,確實(shí)挺炫的,使用Toolbar代替了之前的Actionbar確實(shí)靈活很多。
之前我們只能在application或者activity中使用theme主題,但是在Android 5.0中可以給View使用theme主題,這個(gè)View及其子View都會(huì)使用這個(gè)theme,給了我們?cè)O(shè)計(jì)一個(gè)很大的靈活性。
給View添加theme的方法為:
android:theme="你的theme"
例如:

<android.support.v7.widget.Toolbar 
android:id="@+id/toolbar" 
android:layout_width="match_parent" 
android:layout_height="?attr/actionBarSize" 
android:background="?attr/colorPrimary" 
android:theme="@style/AppTheme.AppBarOverlay" 
app:popupTheme="@style/AppTheme.PopupOverlay"/> 

app:popupTheme,這個(gè)屬性就是用來(lái)自定義我們彈出的菜單的樣式,在之前的Actionbar的溢出菜單,我們是不能自定義他的樣式的,只能根據(jù)你的theme來(lái)選擇黑白兩種,不能自己定義,現(xiàn)在我們可以定義彈出菜單的樣式。比如我們的需求:
ActionBar文字是白的,ActionBar Overflow彈出的是白底黑字
默認(rèn)的情況下我們使用theme為android:Theme.Holo.Light.DarkActionBar那么ActionBar文字是白的,ActionBar Overflow彈出的是黑底白字,但是我們要的是上面的需求白底黑字怎么辦呢,這在android5.0以前是沒(méi)法做到的,現(xiàn)在可以用app:popupTheme這個(gè)屬性就可以實(shí)現(xiàn),比如我可以將toolbar的app:popupTheme="ThemeOverlay.AppCompat.Light",那么這個(gè)Overflow彈出的是白底黑字。

最后一個(gè)問(wèn)題使用android:theme這個(gè)屬性,在android3.0以上可以應(yīng)用到View及其子View的,但是在android3.0以下只能應(yīng)用到當(dāng)前的View,是不能使子View起作用的,所有要用到該theme的View都要加上
本文大部分都是移值這篇博客的,大家可以自行翻閱原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容