W definicji paska postępu styl określa się jakoskładnia Android pasek postępu styl
style="?android:attr/progressBarStyleHorizontal"
nie jestem jasne, w jaki ta składnia prac. Czy ktoś może wyjaśnić tę składnię?
W definicji paska postępu styl określa się jakoskładnia Android pasek postępu styl
style="?android:attr/progressBarStyleHorizontal"
nie jestem jasne, w jaki ta składnia prac. Czy ktoś może wyjaśnić tę składnię?
Ta składnia służy do odniesienia do atrybutu stylu systemu i jest podobna do składni używanej do odniesienia do zasobu predefiniowanego przez system Android: podczas gdy w ogólnym przypadku zasobów używasz np. @android:drawable/ic_media_play
w celu odniesienia do elementu Draw, reprezentowanego przez plik ic_media_play.png
w wartości atrybutu android:src
dla elementu interfejsu użytkownika ImageButton
zawartego w układzie XML, odniesienie do atrybutu jest tworzone przy użyciu ?
zamiast @
, ale reszta składa się z tego samego zasady i działa w ten sam sposób.
W szczególności atrybuty są zwykle przechowywane w res/values/attrs.xml
, gdzie można znaleźć (patrząc na zasoby systemowe przechowywane w Android SDK) dodaje
<attr name="progressBarStyleHorizontal" format="reference" />
wskazujących, że atrybut jest odwołaniem do innego zasobu . Atrybut styl jest zdefiniowana w res/values/themes.xml
w następujący sposób:
<item name="progressBarStyleHorizontal">
@android:style/Widget.ProgressBar.Horizontal
</item>
które jest rzeczywiście odniesienie do stylu Widget.ProgressBar.Horizontal
w systemie res/values/styles.xml
jak już opisany przez inną odpowiedź.
zauważyć, że w sytuacjach, gdy system zna się spodziewać odwołanie do zasobu atrybutu, można nawet pominąć typ zasobu (czyli attr/
części), co prowadzi do składni, takich jak:
android:textColor="?android:textColorSecondary"
może się okazać nieco więcej informacji na temat Android developer guide
Android: attr oznacza, że ten styl jest wybierany ze struktur systemu Android. Więc jeśli przeglądać źródła styles.xml z ram http://bit.ly/yBC5pM i szukać progressBarStyleHorizontal, można zobaczyć go dziedziczy Widget.ProgressBar.Horizontal
<style name="Widget.ProgressBar.Horizontal" parent="@style/Widget.ProgressBar"> <item name="maxHeight">20.0dip</item> <item name="indeterminateOnly">false</item> <item name="indeterminateDrawable">@drawable/progress_indeterminate_horizontal</item> <item name="progressDrawable">@drawable/progress_horizontal</item> <item name="minHeight">20.0dip</item> </style>
wszystkich powyższych właściwości + właściwości z Widget.Progressbar (Ponieważ jego rodzic jest tym), zostanie on odziedziczony do paska postępu.
Moje pytanie związane jest ze składnią, w których styl jest zdefiniowany „style =” android: atr /” – prashant
jak Guilio powiedział, część składni można znaleźć pod linkiem przez niego dostarczone – nandeesh