Zastanawiam się raz po raz, czy jest jakiś sposób zdefiniowania kolorów w colors.xml
przez odniesienie do innego koloru, który został zdefiniowany. Cóż, próbowałem go i rzeczywiście wygląda na to, że możesz odwoływać się do innych kolorów używając @ color/XXX.Android - definiowanie kolorów poprzez odwoływanie się do innych zdefiniowanych kolorów
na przykład czyjeś colors.xml mógłby wyglądać następująco:
<?xml version="1.0" encoding="utf-8"?>
<resources>
…
<color name="primary_blue">#205081</color>
<color name="action_bar_text">@color/primary_blue</color>
…
</resources>
Ale nie chcesz, aby inni używać primary_blue
definicję bezpośrednio - to nie ma sensu, aby coś niebieskiego bez kontekstu. Najlepszym rozwiązaniem, które wymyśliłem, jest przedrostek "bezpośrednich" kolorów, takich jak primary_blue
, a następnie skomentuj, że nie powinny być używane bezpośrednio.
Czy istnieje sposób, aby uniemożliwić korzystanie z tych kolorów bezpośrednich, a jednocześnie pozwala mi mój plik colors.xml odwoływać się do nich? Myślę, że może style lub apklib mogą mi pomóc.
Jeśli masz zamiar użyć tego samego koloru w innej sytuacji niż "kontekst", nie ma to żadnego sensu. Także jeśli action_bar_color jest dostępny, będzie to kolor primary_blue. – Luksprog
Byłoby to bardzo przydatne, ponieważ wymusza dobre praktyki kodowania. Szkoda, że nie ma sposobu na ukrycie przestrzeni nazw w xml. –