Android: ScrollView Edizione
-
19-09-2019 - |
Domanda
Ho avuto una serie di problemi con ScrollViews. Recentemente ho cercato di creare un LinearView cui contenuto supera le dimensioni dello schermo così ho creato il nuovo layout con elemento padre ScrollView e impostarne la larghezza e l'altezza di valori personalizzati (il layout deve apparire come finestra di dialogo - non riempire l'intero schermo).
Quando l'elemento viene selezionato il bordo rosso sembra abbracciare il rettangolo di predefinito ScrollView LayoutWidth e LayoutHeight che è OK. Poi ho messo dentro il LinearView e impostare i valori LayoutWidth e LayoutHeight a fill_parent.
Poi, quando ho iniziato a aggiungere gli elementi in LinearLayout confine (Lile rosso) avvolto gli elementi inseriti, non l'intero genitore ScrollView.
Così, quando il contenuto della LinearLayout (figlio di ScrollView) ha superato la dimensione del genitore ScrollView il rotolo non appariva e gli elementi di fondo sono semplicemente invisibile.
In ogni caso .. in quel caso il contenuto XML è troppo estesa per inviare la domanda qui e ora sto avendo lo stesso problema con l'esempio più semplice.
La seguente parte del layout è destinato ad essere un EditText scorrevole (nel caso l'input dell'utente supera la dimensione principale del widget). Ho voluto impostare l'altezza EditText a 120px, così mi sono messo l'altezza genitore ScrollView a 120px e il bambino EditText a fill_parent. Anche in questo caso l'EditText non riempie l'intera area ScrollView ma una sola riga:
<ScrollView android:layout_height="120px" android:layout_width="fill_parent">
<EditText android:id="@+id/txtContent" android:layout_height="fill_parent" android:layout_width="fill_parent" android:text="TestContent">
</EditText>
</ScrollView>
Qualcuno sa come rimodellare il contenuto di cui sopra in modo che l'EditText riempie il controllo padre e nel caso in cui l'input dell'utente supera la dimensione di controllo appare la pergamena?
Grazie!
Modifica
Di seguito sono elencate le schermate del layout
Rimosso link morto ImageShack
rimosso collegamento ImageShack morti
Soluzione
L'EditText dovrebbe avere un'altezza di wrap_content
. fill_parent
non ha alcun significato in un ScrollView
. Se si desidera che il EditText
per riempire il vostro ScrollView
quando il suo contenuto è più piccolo del ScrollView
, utilizzare android:fillViewport="true"
sulla ScrollView
.
Altri suggerimenti
Sì, come ha detto Romain, esigenze ScrollView seguenti combo.
- per ScrollView
android:fillViewport="true"
- per il bambino di ScrollView
android:layout_height="wrap_content"