Android-Stile: Unterschied zwischen " style="@android:style/XYZ"' und 'style="?android:attr/XYZ"'?

Ich versuche, die Stil-Tasten, um zu schauen, wie ich Sie Fragen, in Android-Volle Breite ICS-Stil Minimalistischen Unten ButtonsViews.

Habe ich erfolgreich, mit den folgenden xml-Code für alle interessierten:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="bottom"
        android:divider="@android:drawable/divider_horizontal_dark"
        android:gravity="bottom"
        android:orientation="vertical"
        android:paddingTop="16dip"
        android:showDividers="beginning|end" >

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:measureWithLargestChild="true"
            android:orientation="horizontal"
            android:divider="@android:drawable/divider_horizontal_dark"
            android:showDividers="middle" >                             


            <Button
                android:id="@+id/cancel_button"
                style="?android:attr/buttonBarButtonStyle"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:layout_weight="1"
                android:maxLines="2"
                android:text="@string/cancel_button" />

            <Button
                android:id="@+id/login_button"
                style="?android:attr/buttonBarButtonStyle"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:layout_weight="1"
                android:filterTouchesWhenObscured="true"
                android:maxLines="2"
                android:text="@string/login_button" />

        </LinearLayout>
    </LinearLayout>

Eine Frage und zwar. Die eclipse-content-assist hat keine Ahnung, was geschieht mit der folgenden Ressource-Auflösung:

style="?android:attr/buttonBarButtonStyle"

Ich bin vertraut mit der typischen Auflösung (die eclipse-content-assist bekannt ist)

style=@android/style/...

...aber ich bin mir nicht klar über den Unterschied zwischen den beiden. Es scheint so, dass einige style-Attribute in eine aber das andere nicht. Zum Beispiel, die folgenden nicht auflösen, zu nichts:

style=@android:attr/buttonBarStyle

und auch nicht dieses:

style="@android:style/buttonBarStyle

Also ich denke, zwei Fragen sind hier:

  1. Warum der Unterschied in der Ressourcen-Referenzierung syntax?
  2. Warum die verwirrende miscategorization von Stilen in einem attr-Kategorie.
  3. Was ist der attr Kategorie sogar wieder?

Dank!

InformationsquelleAutor Teddy | 2012-06-22

Schreibe einen Kommentar