Quando si esegue lo sviluppo Web, è possibile ispezionare un elemento e vedere quali classi forniscono quali regole css. Esiste un equivalente per lo sviluppo di Android?Come posso eseguire il debug di un problema di ereditarietà dello stile Android?
TLDR; Ecco un esempio di un problema di ereditarietà di stile che ho avuto e risolto:
Avevo una finestra di dialogo con il tema Holo, ma il colore del testo era scuro, anche quando ho provato a impostare il colore del testo sul bianco.
Questo è il layout finestra:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Theme.Dialog"/>
</RelativeLayout>
Nella risorsa style.xml
:
<style name="Theme.Dialog" parent="android:style/Theme.Holo.Dialog">
<item name="android:windowTitleStyle">@android:style/TextAppearance.Large</item>
<item name="android:textColor">@color/solid_white</item>
<item name="android:windowNoTitle">true</item>
</style>
Si è scoperto che stavo usando un Fragment
cui Activity
era un ListActivity
, e ha definito GetView, che creato la vista da uno stile xml che imposta il colore del testo in modo che sia scuro. Avrebbe voluto vedere cosa stava impostando il colore del testo.
Perché stai applicando un tema di dialogo a un 'ListView'? Dovrebbe sembrare un dialogo? – Ahmad
Sì, la cosa strana è che quando seleziono un elemento della vista elenco, è ancora un'altra istanza della stessa classe di dialogo, eppure lo stile di Holo si presenta correttamente in quella finestra di dialogo. –
Non sono a conoscenza degli strumenti per l'ispezione degli stili di visualizzazione in fase di esecuzione, ma non è necessario applicare un tema di dialogo a Listview. La finestra di dialogo è modificabile tramite il costruttore e DialogFragment tramite il metodo setStyle(). – Krylez