Estilos Android: Diferença entre 'style =' @ android: style / XYZ '' e 'style ='? Android: attr / XYZ ”'?

Eu estou tentando estilo botões para olhar como aqueles que eu pergunto emAndroid ButtonsViews inferior minimalista do estilo completo da largura de ICS.

Eu consegui, com o seguinte xml para qualquer pessoa interessada:

<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>

Uma questão, no entanto. O assistente de conteúdo do eclipse não tem idéia do que está acontecendo com a seguinte resolução de recurso:

style="?android:attr/buttonBarButtonStyle"

Estou familiarizado com a resolução típica (que o assistente de conteúdo do eclipse está ciente)

style=@android/style/...

... mas não estou claro sobre a diferença entre os dois. Parece que alguns atributos de estilo aparecem em um, mas não no outro. Por exemplo, o seguinte não resolve nada:

style=@android:attr/buttonBarStyle

e nem isso:

style="@android:style/buttonBarStyle

Então eu acho que duas perguntas aqui:

Por que a diferença na sintaxe de referência de recursos?Por que a confusa categorização de estilos em uma categoria attr?Qual é a categoria de atrito usada até mesmo novamente?

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion