2015-09-06 11 views
6

Mam WebView (w obrębie Fragmentu w ViewPager ze SlidingTabLayout).Funkcja AdjustResize nie działa po zwolnieniu klawiatury, klikając zewnętrzną klawiaturę.

Podczas korzystania z WebView do wpisywania, chcę zmienić rozmiar układu, aby upewnić się, że dane wejściowe są widoczne.

Po kliknięciu wprowadzonego tekstu w WebView pojawia się klawisz programowalny i układ zmienia rozmiar. Jestem w stanie wprowadzić mój tekst i przesłać go za pomocą przycisku powrotu na klawiaturze programowej lub anulować wprowadzanie za pomocą przycisku Wstecz. Następnie klawiatura znika, a układ zmienia się z powrotem. Popraw zachowanie AdjustResize.

Jednak podczas zamykania klawiatury przez kliknięcie poza Softkeyboard (np. Przy wpisywaniu zapytania w Google i naciśnięciu przycisku Search w WebView) klawisze się ukrywają, a zmiana rozmiaru układu zajmuje około 2-3 sekund (pozostawiając puste miejsce na 2-3 sekundy u dołu mojego układu). Następnie, po wybraniu wartości textinput, klawiatura nakłada się na WebView (adjustPan).

Jak mogę się upewnić, że podczas zamykania klawiatury przez naciśnięcie przycisku WebView zachowane zostanie zachowanie adjustResize.

Próbowałem ponownego ustawiania AdjustResize (na przykład z onTouch), ale to nie ma znaczenia:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); 

Ja również próbowałem following solution ale to nie daje żadnych zmian.

Ponadto, myślę, że to prawdopodobnie nie jest problem z ustawieniami ostrości (ponieważ klawiatura pojawia się, a widok internetowy odpowiada). A ja pytam skupienie z moim zdaniem:

webView.setFocusable(true); 
    webView.setFocusableInTouchMode(true); 
+0

Chciałbym stworzyć nowy projekt, skopiować i wkleić kod i zobaczyć problem, na który napotykam na moim urządzeniu. Czy możesz dokonać edycji, aby było to możliwe? – NecipAllef

+0

@NecipAllef Wysłałem już kilka plików. Jeśli jednak chcesz, mogę wysłać Ci cały projekt. Email (24HR) l: [email protected] – Mdlc

+0

Widziałem twój kod źródłowy WebView i było to około 1,2 tysiąca linii kodu i uważam, że większość z nich nie jest nawet związana z twoim problemem. Jeśli możesz podać kod, który pozwala nam obserwować problem, ale także nie jest trudny do skompilowania lub debugowania, możesz uzyskać pomoc szybciej. Proponuję więc utworzyć przykładowy projekt i udostępnić go. Wierzę, że jest to możliwe za pośrednictwem Github. – NecipAllef

Odpowiedz

0

Okazało się, że podczas wykonywania tłumaczenia układu na WebView lub jeśli układ w Webview jest pośrednio zmianie (np podczas zmiany rozmiaru elementu nad WebView w RelativeLayout który powoduje WeView być również zmienionym rozmiarze) pokazując i ukrywając klawiaturę może spowodować pewne dziwne zachowanie:

  • zachowanie AdjustResize mogą zostać utracone (jak wskazano w pytaniu)
  • WebView zmiany rozmiaru po klawiaturze może trwać dłużej niż normalny . wydajność
  • Webview maleje

Co rozwiązać ten problem dla mnie, było uniemożliwienie zmiany układu w WebView w jakikolwiek sposób (układ reload po obrocie nie wydaje się przyczyną tego). W moim przypadku pokazywałem i ukrywałem pasek narzędzi, powodując zmianę rozmiaru WebView (i wypełnienie ekranu).

Powiązane problemy