2011-07-03 50 views
42

在幾個android樣式教程中,使用了父元素樣式,我無法在android.R.style。*樣式中找到(http://developer.android.com/reference/android/R.style.html)。查找由android平臺主題定義的所有可用樣式

一些示例來自http://android-developers.blogspot.com/2011/04/customizing-action-bar.html操作欄文章。尼克使用父樣式,比如:

<style name="MyDropDownNav" parent="android:style/Widget.Holo.Light.Spinner.DropDown.ActionBar"> 
... 
</style> 

<style name="MyActionBarTabStyle" parent="android:style/Widget.Holo.Light.ActionBarView_TabView"> 
... 
</style> 

在哪裏這些父風格從何而來?是否可以列出所有可用的父類型?

謝謝。

回答

64

正如"Applying Styles and Themes"文章指出:

Android平臺提供了一個大集合的風格和主題 ,你可以在你的應用程序中使用。您可以在R.style課中找到所有 可用樣式的參考。要使用此處列出的樣式, 會用樣式名稱替換樣式名稱中的所有下劃線。例如,您可以使用 Theme_NoTitleBar主題 "@android:style/Theme.NoTitleBar"

R.style參考,但是,是不是有據可查的,並且不 徹底描述的樣式,所以查看實際源代碼 這些風格和主題會給你一個更好地瞭解 樣式屬性每一個提供。爲了更好的參考 Android的風格和主題,請參閱下面的源代碼:

這些文件將幫助您通過學習的榜樣。例如,在 Android主題源代碼中,您可以找到<style name="Theme.Dialog">的聲明。在此定義中,您將看到用於設置Android 框架使用的對話框的所有 屬性。

+2

會很好,如果有人可以指向上述文件的來源,其中我ca n瀏覽樣式和主題,無需下載android – moonlightdock

+5

的完整源代碼,在http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/上找到這些文件框架/鹼/核心/ RES/RES /值/的themes.xml?av = f – moonlightdock

+0

這真的幫了很多 – Rasmus

3

對於 「機器人:風格/ Widget.Holo.Light.ActionBarView_TabView」 看到: http://developer.android.com/reference/android/R.style.html#Widget_Holo_Light_ActionBar_TabView ......並注意它在推出的API級別!

對於「機器人:風格/ Widget.Holo.Light.Spinner.DropDown.ActionBar」嘗試: http://developer.android.com/reference/android/R.style.html#Widget_Holo_Light_DropDownItem_Spinner

後者僅僅是我最好的猜測 - 我不能得到的名單實際上降了下來。

3

Parent屬性是創建自己的themesstyles時的可選屬性。 基本上parent屬性用於繼承平臺本身已經定義的樣式。

如果我們希望繼承themestyle並覆蓋一些功能,我們可以使用parent屬性。

下面是所有available platform defined styles.

而且多了一個提示的鏈接:

如果你想繼承你自己創建了自己的style指遵循這個例子來繼承。

<style name="MyDropDownNav.Red"> 
     <item name="android:textColor">#FF0000</item> 
    </style> 
2

這裏是Official Google's DocumentationThemesDefault ListStyles Google Android Documentation

您可以將此文件

在這裏找到

我知道回答上述問題的結束在這裏仍然給實施的方式,因爲這將是有益的新手..

如何實現它們

這是我從themes.xml

<style name="Theme.NoTitleBar"> 
    <item name="android:windowNoTitle">true</item> 
</style> 

現在to implement它在我的項目

我必須添加在我Styles.xml文件

<style name="AppTheme" parent="android:Theme.NoTitleBar" /> 

以下線在此我從already defined them by google創造我own theme命名爲「AppTheme」,這將inherit其屬性。所以我提它parent

通過觀察themes.xmlstyles.xml不但help to get the list of the already defined的主題和風格,但也help novices to have an idea how to create主題。

由於我提在這裏parent主題已經由Android定義,因此,如果你想inherit your created theme然後

<style name="Theme2" parent="AppTheme"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowFullscreen">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
</style> 

我們將用前綴的android:到主題名稱中使用它..

只是提供style name to the parent,在這裏我使用Apptheme作爲父主題theme2

+0

不僅有它的名字,還有主題 的源代碼,雖然它與「Idolon」解決方案沒有太大區別,而不是指向屬於google的不同頁面。 – 2013-05-06 05:35:23