Viste personalizzate Android in Eclipse Visual Editor

Nelle mie applicazioni, faccio spesso affidamento sulle viste di build personalizzate, come nell'esempio seguente.

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="@color/light_grey" android:layout_height="match_parent" android:layout_width="fill_parent" > <TextView style="@style/CardTitle" android:id="@+id/card_title" android:layout_height="wrap_content" android:layout_width="fill_parent" /> <com.whiterabbit.cards.ui.AspectRatioImageView android:id="@+id/card_picture" android:layout_width="fill_parent" android:layout_height="wrap_content" android:adjustViewBounds="true" android:layout_marginLeft="30dip" android:layout_marginRight="30dip" android:src="@drawable/boss" /> <ListView android:id="@+id/card_properties" android:layout_width="fill_parent" android:layout_height="wrap_content" /> 

Il problema è che non so come se verrà visualizzato correttamente finché non viene eseguito su un dispositivo reale o sull'emulatore. Inoltre, se ho trovato qualcosa di sbagliato, dovrei eseguire modifiche su di esso e distribuire nuovamente l'applicazione per vedere se i cambiamenti hanno funzionato come ti aspettassi.

  • RecyclerView sta tagliando l'ultimo elemento
  • Perché il filo non si ferma?
  • Come puoi confrontare le stringhe in android con più di
  • Alternativa a AbsoluteLayout in Android?
  • IllegalStateException - Support LoaderManager con AutocompleteTextView
  • come risolvere 22.0.1 \ aapt.exe '' rifinito con valore di output zero diverso da zero
  • Questo può essere un process lungo e noioso, soprattutto se l'applicazione richiede qualche interazione per arrivare all'attività che si desidera controllare.

    L'utilizzo dell'editor visivo non funziona in quanto non è ansible caricare la visualizzazione personalizzata.

    C'è un altro modo per controllare le visualizzazioni visualizzate senza eseguire l'intera applicazione?

    3 Solutions collect form web for “Viste personalizzate Android in Eclipse Visual Editor”

    Puoi farlo nella tua visualizzazione personalizzata:

     if(!isInEditMode()){ // Your custom code that is not letting the Visual Editor draw properly // ie thread spawning or other things in the constructor } 

    http://developer.android.com/reference/android/view/View.html#isInEditMode ()

    Questo ti permette di hide il codice dal Visualizzatore XML Plugin ADT e speriamo di visualizzare un layout!

    View.isInEditMode ()

    Indica se questa vista è attualmente in modalità di modifica. Una visualizzazione è di solito in modalità di modifica quando viene visualizzata all'interno di uno strumento di sviluppo. Ad esempio, se questa visualizzazione viene disegnata da un constructor di interface utente visiva, questo metodo dovrebbe restituire true. Le sottoclassi dovrebbero controllare il valore restituito di questo metodo per fornire comportmenti diversi se il loro comportmento normale potrebbe interferire con l'ambiente host. Ad esempio: la class genera un thread nel suo constructor, il codice di disegno si basa sulle caratteristiche specifiche del dispositivo, ecc. Questo metodo viene normalmente controllato nel codice di disegno dei widget personalizzati.

    È ansible creare un'attività di scheletro che carichi solo la vista che si desidera visualizzare e la popola con dati sufficienti per renderlo visualizzabile.

    Sto utilizzando Android Studio, quindi non sono sicuro che questa risposta si applicherà al tuo caso.

    Penso che potresti ignorare il metodo onDraw nella vista personalizzata, come questa esemplare mantenendo il rapporto di aspetto di un'image interiore:

     @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // TODO: consider storing these as member variables to reduce // allocations per draw cycle. int paddingLeft = getPaddingLeft(); int paddingTop = getPaddingTop(); int paddingRight = getPaddingRight(); int paddingBottom = getPaddingBottom(); int w = getWidth() - paddingLeft - paddingRight; int h = getHeight() - paddingTop - paddingBottom; w = w<h ? w : h; h = w; // Draw the example drawable on top of the text. if (dieDrawable != null) { dieDrawable.setBounds(paddingLeft, paddingTop, paddingLeft + w, paddingTop + h); dieDrawable.draw(canvas); } } 

    Questo metodo funziona sia nell'emulatore che nel progettista.

    Funziona anche per qualsiasi evento che ridisca la vista (onSizeChanged, onLayout, ecc …)

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.