Adli bir ruh halindeyseniz, burada nasıl kazı yapacağınız ve neler olup bittiğini öğreneceğiniz anlatılmaktadır.
android:background="?android:attr/activatedBackgroundIndicator"?
Sezgisel olarak bu, arka planı bazı çekilebilir hale getirmek anlamına gelir.
Ancak gizemli çekilebilirliğe nasıl ulaştığımızı görmek için bunu daha da ayrıştıralım.
Kesin olarak ifade etmek gerekirse, "arka plan özniteliğini" etkinleştirilmiş Arka Plan Göstergesi "özniteliğinin mevcut temada ifade ettiği şeye ayarlayın .
"Mevcut temada atıfta bulunma" bölümünü anlıyorsanız, kapakların arkasında olan her şeyi temelde anlamışsınızdır.
Temel olarak, aktive edilmiş Arka Plan Göstergesi gerçek bir çekilebilir değil, bir çekilebilirliğe referanstır . Peki, "activBackgroundIndictor" özniteliği gerçekte nerede tanımlanıyor?
Sdk dizininizde attrs.xml dosya adıyla tanımlanmıştır . Örneğin:
path_to_android_sdk /latform / android-17 / data / res / values / attrs.xml
Bu dosyayı açarsanız, beyanı aşağıdaki gibi yapacaksınız:
<attr name="activatedBackgroundIndicator" format="reference" />
attrs.xml, daha sonra xml görünümünüzde kullanacağınız tüm öznitelikleri bildirdiğiniz yerdir. Özniteliği ve türünü bildiriyoruz ve burada aslında bir değer atamıyoruz .
Gerçek değer, themes.xml dosyasında atanır . Bu dosya şu adreste bulunur:
path_to_android_sdk / platformlar / android-17 / data / res / values / themes.xml
Bu dosyayı açarsanız, kullandığınız temaya bağlı olarak birden çok tanım görürsünüz . Örneğin, sırasıyla Tema, Tema.Işık, Tema.Holo, Tema.Holo.Light temalarının tanımları şunlardır:
<item name="activatedBackgroundIndicator">@android:drawable/activated_background</item>
<item name="activatedBackgroundIndicator">@android:drawable/activated_background_light</item>
<item name="activatedBackgroundIndicator">@android:drawable/activated_background_holo_dark</item>
<item name="activatedBackgroundIndicator">@android:drawable/activated_background_holo_light</item>
Şimdi gizemli çekmecelerimiz var. İlki seçerseniz, şu adresteki çekilebilir klasörde tanımlanır:
path_to_android_sdk / platformlar / android-17 / data / res / drawable / active_background.xml
Bu dosyayı açarsanız, neler olup bittiğini anlamak için önemli olan çekilebilir dosyanın tanımını göreceksiniz.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" />
<item android:drawable="@color/transparent" />
</selector>
Burada iki durumlu bir çekilebilir tanımlıyoruz - varsayılan durum sadece şeffaf arka plandır ve eğer durum "state_activated" ise çekilebilirimiz "list_selector_background_selected" olur.
Çekilebilir öğeler ve durumlar hakkında arka plan bilgisi için bu bağlantıya bakın .
"list_selector_background_selected", çekilebilir hdpi klasöründe bulunan 9 yamalı bir png dosyasıdır.
Artık, doğrudan çekilebilir dosyaya bağlanmak yerine, neden activeBackgroundIndicator'ı bir referans olarak tanımladığımızı anlayabilirsiniz - temanıza bağlı olarak doğru çekilebilir olanı seçmenize olanak tanır.