2011-01-05 15 views
8

mam z tym aktywność Layouts struktura: LinearLayout -> Scrollview -> TableLayoutandroid: windowSoftInputMode = "adjustResize", kiedy mam już Scrollview aktywności

Poniżej TableLayout mam EditText, co ja chcesz przewinąć w górę, gdy klawiatura jest aktywna. Więc według niektórych czytania zrobiłem, i dodał:

android:windowSoftInputMode="adjustResize" 

do AndroidManifest.xml, do właściwego działania i dodaje owijkę Scrollview do pliku activity.xml, więc układy struktury działalności przedstawia się następująco: Scrollview -> LinearLayout -> Scrollview -> TableLayout

problem: wewnętrzna Scrollview nie działa teraz ... Chyba Scrollview owijania jest przejęcie kontroli przy dotknięciu ...

Jak mogę rozwiązać ten problem?

Każda pomoc zostanie doceniona. Dzięki.

+0

Postaraj się uniknąć sytuacji, w której przewijanie jest gdzieś w innym przewijanym widoku. możesz go przechwycić, ale nie jest to konieczne. Mam jakiś problem. ale linearlayout> scrollview> tablelayout wystarczy na twój problem. wewnętrzny scrollview automatycznie dostosowuje się do odpowiedniego rozmiaru. Chciałbym również polecić dodanie "stateVisible" do opcji inputMode –

+1

Ale jeśli nie zawinię całej aktywności za pomocą ScrollView, działanie nie zostanie zmienione, gdy edittext kliknie ... Czy jestem w błędzie? Próbowałem bez niego, a Activity nie przewinął się z klawiaturą - klawiatura właśnie zakryła EditText, znowu ... – ofirbt

Odpowiedz

10

Wystąpił ten sam problem, w którym wirtualna klawiatura ukrywała EditTexts na moim ekranie. wprowadziłem następujące właściwości dla tagu aktywności w pliku manifestu:

android:windowSoftInputMode="stateVisible|adjustResize|adjustPan" 

Również potrzebne, aby dodać następujący kod w działalności za OnCreate funkcję:

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

To rozwiązało problem i to działało perfekcyjnie na wszystkich emulatorach rozdzielczości i urządzeniach Samsung. Nie udało się jednak, na urządzeniu Google Nexus S, i znowu widziałem ten sam problem z wirtualną klawiaturą ukrywającą EditTexts.

+11

To jest co najmniej trochę nie tak. Zgodnie z [dokumentacją windowSoftInputMode] (http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft) nie można ustawić wielu parametrów 'adjust' (i nie powoduje to w każdym razie sens). – Timmmm

+2

Dokumentacja nie mówi, że nie można ustawić wielu wartości, tylko że wynik jest niezdefiniowany, więc jest trochę hackowania. – fejd

+0

Po godzinach wyszukiwania to rozwiązało mój problem z opóźnieniem wejścia "EditText" (do 5 sekund opóźnienia). Dziękuję Ci. –

Powiązane problemy