Esa sintaxis se utiliza para hacer referencia a un atributo de estilo de sistema, y es similar a la sintaxis utilizada para hacer referencia a un recurso predefinido por el sistema Android: mientras que en el caso de recursos generales se usa p. @android:drawable/ic_media_play
para hacer referencia a Drawable representado por el archivo ic_media_play.png
en el valor android:src
del elemento ImageButton
UI incluido en un diseño XML, la referencia de atributo se genera utilizando ?
en lugar de @
, pero para el resto se compone siguiendo el mismo reglas y funciona de la misma manera.
En particular, los atributos se almacenan generalmente en res/values/attrs.xml
, donde se puede encontrar (mirando a los recursos del sistema almacenados en el SDK de Android) La siguiente
<attr name="progressBarStyleHorizontal" format="reference" />
lo que indica que el atributo es una referencia a algún otro recurso . El atributo de estilo se define en res/values/themes.xml
de la siguiente manera:
<item name="progressBarStyleHorizontal">
@android:style/Widget.ProgressBar.Horizontal
</item>
que es de hecho una referencia al estilo Widget.ProgressBar.Horizontal
en el sistema res/values/styles.xml
como ya se ha descrito por otra respuesta.
Tenga en cuenta que, en contextos en que el sistema sabe esperar una referencia a un recurso de atributo, incluso se puede omitir el tipo de recurso (es decir, la parte attr/
), lo que lleva a una sintaxis como:
android:textColor="?android:textColorSecondary"
usted puede encontrar un poco más de información sobre el Android developer guide
Mi pregunta está relacionada con la sintaxis en la que se define "style =" androide el estilo:? attr /" – prashant
como Giulio dijo, que forma parte de sintaxis se puede encontrar en el enlace proporcionado por él – nandeesh