Autore Topic: Far alzare l'intera view quando appare la tastiera  (Letto 356 volte)

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Far alzare l'intera view quando appare la tastiera
« il: 26 Aprile 2016, 12:28:53 CEST »
0
Salve a tutti!

Nella mia view (che fa parte di un fragment) ho un form da compilare composto da 3 edit text, quando scrivo sul primo campo appare la tastiera e mi copre i due sottostanti.
Come faccio a fare scorrere tutta la view in modo che questi 3 box siano sempre visibili?

Ho provato con
Codice (XML): [Seleziona]
android:windowSoftInputMode="stateVisible|adjustResize"nel manifest ma non è cambiato nulla.

Avete qualche suggerimento?

Grazie mille in anticipo!

Offline LinkOut

  • Utente normale
  • ***
  • Post: 269
  • Respect: +37
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Far alzare l'intera view quando appare la tastiera
« Risposta #1 il: 26 Aprile 2016, 13:22:59 CEST »
0
Ciao,
Io penso che questo comportamento sia normale. Se devi compilare un form lungo, alcune view stanno sotto la tastiera.
Secondo me dovresti alzare la view (stessa altezza della tastiera) dal basso, così vedi tutto.

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Far alzare l'intera view quando appare la tastiera
« Risposta #2 il: 26 Aprile 2016, 14:18:17 CEST »
0
E come faccio ad alzare tutta la view?

Offline LinkOut

  • Utente normale
  • ***
  • Post: 269
  • Respect: +37
    • Mostra profilo
  • Dispositivo Android:
    Xiaomi Mi5
Re:Far alzare l'intera view quando appare la tastiera
« Risposta #3 il: 26 Aprile 2016, 15:06:45 CEST »
0
Margin bottom alla tua "rootView"

Offline ValerioAdo

  • Utente normale
  • ***
  • Post: 316
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Huawei Ascend g525
  • Sistema operativo:
    windows 8.1
Re:Far alzare l'intera view quando appare la tastiera
« Risposta #4 il: 26 Aprile 2016, 15:27:38 CEST »
0
Si, in effetti era abbastanza ovvio.... il problema è che dovrebbe alzare la view quando appare al tastiera e tornare normale quando la tastiera sparisce.

Al momento sto provando così:
Codice (Java): [Seleziona]
    rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                int heightDiff = rootView.getRootView().getHeight() - rootView.getHeight();
                if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...

                    Rect r = new Rect();
                    rootView.getWindowVisibleDisplayFrame(r);

                    int screenHeight = rootView.getHeight();
                    int heightDifference = screenHeight - (r.bottom - r.top);
                    Log.d("Keyboard Size", "Size: " + heightDifference);

                    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) rootView.getLayoutParams();
                    params.setMargins(0, 0,0, heightDifference);//left,top,right,bottom
                    rootView.setLayoutParams(params);
                }
            }
        });

però non viene mai chiamata...