Autore Topic: Scroll sopra la tastiera  (Letto 725 volte)

Offline gigi

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG-P500
  • Sistema operativo:
    Gentoo
Scroll sopra la tastiera
« il: 18 Dicembre 2010, 13:18:16 CET »
0
Ciao a tutti.

Avete presente quando, con il telefono in verticale, compare la tastiera virtuale in basso e una parte dell'activity è visibile sopra di essa? Bene: normalmente è possibile far scorrere l'activity nello spazio che la tastiera lascia, ma... non con la mia applicazione!
La mia activity è formata da un LinearLayout con dentro due EditText e un Button, che prendono tutto lo spazio. Nient'altro.
Cosa devo attivare per permettere lo scroll con la tastiera virtuale presente?

perdonatemi ma nella documentazione non trovo nulla che faccia al caso mio.
grazie!

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Scroll sopra la tastiera
« Risposta #1 il: 18 Dicembre 2010, 13:28:41 CET »
0
Devi mettere una ScrollView che contiene il layout che deve essere scrollabile
Postate il LogCat LogCat LogCat LogCat LogCat

Offline gigi

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG-P500
  • Sistema operativo:
    Gentoo
Re:Scroll sopra la tastiera
« Risposta #2 il: 18 Dicembre 2010, 14:09:11 CET »
0
Grazie... ora ho lo scroll che volevo!

E' nato però un altro problema: in assenza della tastiera virtuale il mio LinearLayout non prende l'intero schermo ma solo la parte superiore. gli EditText sono grandi il minimo indispensabile e non occupano tutto lo spazio disponibile.

questo è il layout dell'activity:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

    <ScrollView
       android:id="@+id/container"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent" />

</LinearLayout>
Il layout che materialmente contiene gli EditText e il Button, opportunamente configurati per riempire lo spazio disponibile, lo genero da codice e poi lo attacco a quella scrollview raggiungendola per id.

Sicuramente sto facendo qualcosa di losco...

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Scroll sopra la tastiera
« Risposta #3 il: 18 Dicembre 2010, 14:33:37 CET »
0
Ma prima di aggiungere la ScrollView ti visualizzava il layout come volevi?
Per occupare "tutto lo spazio disponibile" imposta fill_parent in width e/o height, a seconda delle esigenze (sempre se ho capito bene il problema).
Postate il LogCat LogCat LogCat LogCat LogCat

Offline gigi

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG-P500
  • Sistema operativo:
    Gentoo
Re:Scroll sopra la tastiera
« Risposta #4 il: 18 Dicembre 2010, 15:32:10 CET »
0
S', esatto. Se tolgo lo scrollview e attacco il layout contenente i bottoni al LinearLayout rimasto in main.xml, ottengo l'occupazione completa dello schermo. Ma naturalmente perdo lo scroll con la tastiera aperta.

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Scroll sopra la tastiera
« Risposta #5 il: 18 Dicembre 2010, 15:46:41 CET »
0
Posta tutto l'XML che te lo sistemiamo.
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline gigi

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG-P500
  • Sistema operativo:
    Gentoo
Re:Scroll sopra la tastiera
« Risposta #6 il: 18 Dicembre 2010, 15:53:50 CET »
0
Ecco, ho ricostruito l'intera struttura in main.xml togliendo momentaneamente la costruzione fatta a programma; il LinearLayout con id="layout1" è equivalente a quello che produco da codice.

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

   android:orientation="vertical"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

    <ScrollView
       android:id="@+id/container"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">

        <LinearLayout

           android:id="@+id/layout1"
           android:orientation="vertical"
           android:layout_width="fill_parent"
           android:layout_height="fill_parent">

            <EditText
               android:layout_width="fill_parent"
               android:layout_height="fill_parent"
               android:layout_weight="1" />
            <Button
               android:layout_width="fill_parent"
               android:layout_height="fill_parent" />
            <EditText
               android:layout_width="fill_parent"
               android:layout_height="fill_parent" />

        </LinearLayout>

    </ScrollView>

</LinearLayout>

questo non occupa l'intero schermo. Notare che un EditText ha weight=1.
Dev'essere una boiata... dove sbaglio?

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Scroll sopra la tastiera
« Risposta #7 il: 18 Dicembre 2010, 16:16:13 CET »
0
Ecco a te:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:fillViewport="true">
        <LinearLayout
                android:id="@+id/layout1"
                android:orientation="vertical"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent">

                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_weight="1" />
                <Button
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_weight="1" />
                <EditText
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:layout_weight="1" />
        </LinearLayout>
</ScrollView>

La magia la fa android:fillViewport="true"
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline gigi

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG-P500
  • Sistema operativo:
    Gentoo
Re:Scroll sopra la tastiera
« Risposta #8 il: 18 Dicembre 2010, 16:31:51 CET »
0
questo è, come si dice, giocare d'esperienza.
grazie mille!