0
<item name="android:actionBarStyle"> @ style / ActionBar.Home </ item>
<item name="actionBarStyle"> @ style / ActionBar.Home </ item>

私の質問: プレフィックス "android:" プレフィックス "android:" がない場合の違いは何ですか?

<style name="Theme.Iosched" parent="Theme.Base">
    <item name="android:windowBackground">@android:color/white</item>
    <item name="android:windowContentOverlay">@drawable/actionbar_shadow</item>
    <item name="windowContentOverlay">@drawable/actionbar_shadow</item>
    <item name="android:actionBarStyle">@style/ActionBar</item>
    <item name="actionBarStyle">@style/ActionBar</item>
    <item name="android:actionBarTabStyle">@style/ActionBar.TabView</item>
    <item name="actionBarTabStyle">@style/ActionBar.TabView</item>
    <item name="android:actionBarTabBarStyle">@style/ActionBar.TabBar</item>
    <item name="actionBarTabBarStyle">@style/ActionBar.TabBar</item>
    <item name="android:actionBarTabTextStyle">@style/ActionBar.TabText</item>
    <item name="actionBarTabTextStyle">@style/ActionBar.TabText</item>
</style>
4

2 に答える 2

2

.xml ファイルの先頭を見ると、次のようになっているはずです。

xmlns:android="http://schemas.android.com/apk/res/android"

その名前空間を参照しているので、windowBackground と言ったときに何を見ているかがわかります。

ここに関連する以前の回答があります: XMLの「xmlns」はどういう意味ですか?

于 2012-09-10T02:08:14.690 に答える
0

サポート ライブラリを使用して、HoneyComb 以前のデバイス、つまり ActionBarSherlock でActionBarsを提供していると思います。

もしそうなら、彼らが backgroundColor と言うとき、彼らは彼ら自身の変数を参照しており、彼らが接頭辞androidを付けているなら、彼らはシステム値にアクセスしようとしています. これらの値 (定数) は、ActionBar を追加するデバイスでは使用できない可能性があるためです。

IDE の助けを借りて (つまり、Eclipse で ctrl + クリック)、これらの 2 行を調べると、

<item name="android:actionBarStyle"> @ style / ActionBar.Home </ item>
<item name="actionBarStyle"> @ style / ActionBar.Home </ item>

@ style / ActionBar.Home の両方の値が 2 つの異なる場所を指している可能性があります。実際、これらのライブラリは、ユーザーが変更する必要がないと想定することで、事態を悪化させることがあります。

ただし、概念を理解すれば簡単です。ActionBarSherlock は、ActionBar のネイティブ サポートが利用できないデバイスで、(これらの変数を使用して) 独自の構成を提供します。ただし、Android API からアクション バーが利用できる場合はバイパスするだけです。

私は認めざるを得ませんが、ActionBarSherlock を読んで理解することは、A$$$ の本当の苦痛である場合があります。

于 2012-09-13T10:37:35.707 に答える