7

違いは何ですか

android:color="@android:color/black"

style="?android:attr/borderlessButtonStyle" 

@とはどう違い?ますか?

これは、Google で検索できない質問の 1 つ、つまりogooglebarです。

4

3 に答える 3

9

@android:色/黒

Android名前空間で定義された色を参照していることを意味します。この名前空間は、フレームワークの名前空間です。

このファイルで黒を検索:フレームワーク内の黒の色

style="?android:attr/borderlessButtonStyle"

「?android:attr/borderlessButtonStyle」は、単に「名前空間 android の borderlessButtonStyle という属性によって定義された値を使用する」ことを意味します。この属性とその値は、Android フレームワークの「android」名前空間の一部です。

フレームワークの borderlessButtonStyle


編集:この参照スタイル属性から

このリンクは私たちに教えてください:

たとえば、属性を参照してテキストの色をシステム テーマの「プライマリ」テキストの色に一致するように設定する方法を次に示します。

<EditText id="text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="?android:textColorSecondary"
    android:text="@string/hello_world" />
于 2013-05-22T05:37:36.550 に答える
5

この回答とそのコメントから)

ID の先頭に疑問符を付けると、スタイル 属性の参照で説明されているように、属性をハードコーディングするのではなく、スタイル テーマで定義されているスタイル属性にアクセスする必要があることを示します。

より具体的には、?は余分なレベルの間接性を意味します。属性自体を参照するのではなく、テーマ属性を逆参照して、それが指すリソースをフェッチすると考えてください。これは ?android:attr/foo で確認できます

于 2013-05-22T05:37:47.893 に答える
1

ここで Google にはドキュメントがあります http://developer.android.com/guide/topics/resources/accessing-resources.html#ReferencesToThemeAttributes

于 2013-05-22T05:44:28.613 に答える