2013-05-25 10 views
7

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.

+1

Perché stai applicando un tema di dialogo a un 'ListView'? Dovrebbe sembrare un dialogo? – Ahmad

+0

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. –

+0

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

risposta

0

Sono d'accordo con i commenti sulla tua domanda, ma per il futuro, se vuoi avere un'idea della gerarchia della vista (non degli stili) per la tua app, puoi farlo in Eclipse.

Eseguire l'app. Finestra> Apri prospettiva> DDMS. Nel riquadro DDMS, fare clic sull'icona a sinistra che assomiglia a una pila di telefoni (accanto all'icona della fotocamera)

È possibile scorrere il mouse sullo schermo e ottenere una rappresentazione visiva della gerarchia della vista.

Potrebbe aiutare in qualche modo.

Problemi correlati