web-dev-qa-db-ja.com

Androidプラットフォームテーマで定義されたすべての利用可能なスタイルを見つける

いくつかのAndroidスタイリングチュートリアルでは、Android.R.style。*スタイルでは見つからない親スタイル要素が使用されます( http://developer.Android.com/reference /Android/R.style.html )。

いくつかの例は 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>

これらの親スタイルはどこから来たのですか?利用可能なすべての親スタイルをリストすることは可能ですか?

ありがとう。

44
Moritz

「スタイルとテーマの適用」 記事に記載されているとおり:

Androidプラットフォームは、アプリケーションで使用できるスタイルとテーマの大きなコレクションを提供します。利用可能なすべてのスタイルのリファレンスは、 R.style クラス:ここにリストされているスタイルを使用するには、スタイル名のすべての下線をピリオドに置き換えます。たとえば、 Theme_NoTitleBar テーマを"@Android:style/Theme.NoTitleBar"

ただし、 R.style 参照は十分に文書化されておらず、スタイルを完全に説明していないため、これらのスタイルおよびテーマの実際のソースコードを表示すると、それぞれが提供するスタイルプロパティ。 Androidスタイルとテーマのより良い参照については、次のソースコードを参照してください。

これらのファイルは、例を通して学ぶのに役立ちます。たとえば、Androidテーマのソースコードでは、<style name="Theme.Dialog">の宣言があります。この定義では、Androidフレームワークで使用されるダイアログのスタイル設定に使用されるすべてのプロパティが表示されます。

70
Idolon

Official Google's Documentation for ThemesおよびStylesDefault ListGoogle Android Documentation

こちらのドキュメントをご覧ください

上記の質問への答えは、初心者にとっても役立つので、実装の方法を残してここで終わります。

それらの実装方法

これはthemes.xmlから得たものです

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

今、私のプロジェクトでto implement it

Styles.xmlファイルに次の行を追加する必要があります

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

これで、own themeというプロパティをAppThemeという名前のinheritという名前のalready defined them by googleを作成しています。 parentで言及しています

themes.xmlstyles.xmlを調べることにより、help to get the list of the already definedテーマとスタイルだけでなく、help novices to have an idea how to createテーマも調べることができます。

ここでparentで言及しているテーマは、Androidで既に定義されているため、テーマ名の前に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> 

style name to the parentを指定するだけです。ここでは、theme2の親テーマとしてAppthemeを使用しています。

3
DeltaCap019

「Android:style/Widget.Holo.Light.ActionBarView_TabView」については、以下を参照してください。 http://developer.Android.com/reference/Android/R.style.html#Widget_Holo_Light_ActionBar_TabView ...導入されたAPIレベル!

「Android:style/Widget.Holo.Light.Spinner.DropDown.ActionBar」の場合: http://developer.Android.com/reference/Android/R.style.html#Widget_Holo_Light_DropDownItem_Spinner

後者は私の推測です-リストを実際にドロップダウンすることはできません。

3
hooby3dfx

Parent属性は、独自のthemesまたはstylesを作成する際のオプションの属性です。基本的に、parent属性は、プラットフォーム自体で既に定義されているスタイルを継承するために使用されます。

themeまたはstyleを継承し、一部の機能を上書きする場合は、parent属性を使用できます。

ここにすべてのリンクがあります 利用可能なプラットフォーム定義styles

そしてもう1つのヒント:

自分で作成したstyleを継承したい場合は、この例に従って継承してください。

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