/ / Ako potlačiť (alebo skryť) atribúty štýlu definované v projekte knižnice Android? - android, android-layout, štýly, potlačenie, android-library

Ako skryť (alebo skryť) atribúty štýlu definované v projekte knižnice Android? - android, Android layout, štýly, override, android-library

Mám skupinu podobných aplikácií. Do projektu knižnice som extrahoval bežné zdroje a kód a aplikácie jednoducho prepísali to, čo potrebujú. V mojej knižnici je definovaný nasledujúci štýl:

<style name="ListItemText">
<item name="android:layout_toRightOf">@id/preview_image</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">@dimen/previewTextSize</item>
</style>

Ako vidíte, obsahuje android:layout_toRightOf atribútom, pretože tento štýl by sa použil na text v riadku ListView, ktorý by sa mal zobraziť vpravo od obrázka v tomto riadku.
Avšak v jednej z mojich aplikácií by som rád zobrazil text pod obrázkom ListItemText Štýl v tejto aplikácii by mal byť definovaný tak, aby nahradil android:layout_toRightOf hodnotu atribútu a nahraďte ju android:layout_below?

Ak to definujem ako:

<style name="ListItemText">
<item name="android:layout_below">@id/preview_image</item>
</style>

zobrazuje text napravo a pod obrázkom, čím efektívne sumarizuje atribúty z XML štýlov knižnice a aplikácie.

p.s .: Jedným z možných riešení môjho problému by bolo zbaviť sa android:layout_toRightOf v štýloch a presunúť ho do rozloženia xmlmiesto. Potom v cieľovej aplikácii môže byť toto rozloženie predefinované / prepísané. Hľadám však riešenie založené na štýle, pretože by to mohlo poskytnúť jednoduchší a priamejší spôsob prekrývania atribútov.
(Viem použiť aj zdedený štýl parent atribútu, ale to by znova vyžadovalo prepísanie rozloženia v aplikácii, ktorému sa snažím vyhnúť).

odpovede:

6 pre odpoveď č. 1

Zakázať android:layout_toRightOf, môžete ho nastaviť na @null, Ak vaša aplikácia definuje ListItemText Štýl by mal fungovať tak, ako chcete:

<style name="ListItemText">
<item name="android:layout_toRightOf">@null</item>
<item name="android:layout_below">@id/preview_image</item>
</style>

0 pre odpoveď č. 2

Dalo by sa použiť "rodič" odvodiť špecializovaný štýl (pozri http://developer.android.com/guide/topics/ui/themes.html), ale definovanie rozloženia, ako je toto, so štýlmi, ma nezaručuje, ako vyriešiť tento problém. Je v poriadku ponechať nejaké informácie o rozložení v súboroch rozloženia.