2012-07-02 7 views
10

Próbowałem uzyskać przewijanie tego przewijania i nie miałem w tym żadnego szczęścia. Próbowałem wiele rodzajów poprawek, ale nie wydaje się, aby jeden działa. Chciałbym móc przewinąć moją stronę po zaznaczeniu pola edycji, a klawiatura zajmuje połowę ekranu. W ten sposób mogę przejść do pozostałych pól edycji i przycisku akceptacji na dole strony, bez konieczności ręcznego ukrywania klawiatury za każdym razem.Nie można uzyskać przewijania do przewijania, gdy wyświetlana jest klawiatura ekranowa.

Tu jest mój kodu xml:

<?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/asuswallpaper4" 
     android:orientation="vertical" 
     android:weightSum="1" 
     > 



     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#AAA" 
      android:text="Input Configuration" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:textColor="#000" > 
     </TextView> 

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

       <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical" > 



         <LinearLayout 
         android:id="@+id/linearLayout10" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:layout_marginTop="20dp" 
         android:orientation="horizontal" > 

         <TextView 
         android:id="@+id/textView13" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:text="TextView" 
         android:textAppearance="?android:attr/textAppearanceMedium" 
         android:textColor="#000" 
         android:textStyle="bold" > 
         </TextView> 

      <TextView 
       android:id="@+id/textView11" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Enable or Disable" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#FFF" > 
      </TextView> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/linearLayout11" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp" > 

      <RadioGroup 
       android:id="@+id/DisableEnable" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:addStatesFromChildren="true" 
       android:orientation="horizontal" > 

       <RadioButton 
        android:id="@+id/disableButton" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:checked="true" 
        android:text="Disable" 
        android:textColor="#FFF" > 
       </RadioButton> 

       <RadioButton 
        android:id="@+id/enableButton" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="100dp" 
        android:text="Enable" 
        android:textColor="#FFF" > 
       </RadioButton> 
      </RadioGroup> 
     </LinearLayout> 

     <!-- <LinearLayout --> 
     <!-- android:id="@+id/linearLayout3" --> 
     <!-- android:layout_width="match_parent" --> 
     <!-- android:layout_height="wrap_content" --> 
     <!-- android:layout_marginTop="20dp" --> 
     <!-- android:orientation="horizontal" > --> 


     <!-- <TextView --> 
     <!-- android:id="@+id/textView14" --> 
     <!-- android:layout_width="wrap_content" --> 
     <!-- android:layout_height="wrap_content" --> 
     <!-- android:text="TextView" --> 
     <!-- android:textAppearance="?android:attr/textAppearanceMedium" --> 
     <!-- android:textColor="#000" --> 
     <!-- android:textStyle="bold" --> 
     <!-- android:visibility="invisible" > --> 
     <!-- </TextView> --> 


     <!-- <TextView --> 
     <!-- android:id="@+id/textView3" --> 
     <!-- android:layout_width="wrap_content" --> 
     <!-- android:layout_height="wrap_content" --> 
     <!-- android:text="Positive/Negative Trigger" --> 
     <!-- android:textAppearance="?android:attr/textAppearanceMedium" --> 
     <!-- android:textColor="#FFF" --> 
     <!-- android:visibility="invisible" > --> 
     <!-- </TextView> --> 
     <!-- </LinearLayout> --> 


     <!-- <LinearLayout --> 
     <!-- android:id="@+id/linearLayout4" --> 
     <!-- android:layout_width="match_parent" --> 
     <!-- android:layout_height="wrap_content" --> 
     <!-- android:orientation="vertical" > --> 


     <!-- <RadioGroup --> 
     <!-- android:id="@+id/PosNeg" --> 
     <!-- android:layout_width="wrap_content" --> 
     <!-- android:layout_height="wrap_content" --> 
     <!-- android:orientation="horizontal" --> 
     <!-- android:visibility="invisible" android:clickable="false"> --> 


     <!-- <RadioButton --> 
     <!-- android:id="@+id/positive_trigger" --> 
     <!-- android:layout_width="wrap_content" --> 
     <!-- android:layout_height="wrap_content" --> 
     <!-- android:checked="true" --> 
     <!-- android:text="Positive" --> 
     <!-- android:textColor="#FFF" android:clickable="false"> --> 
     <!-- </RadioButton> --> 


     <!-- <RadioButton --> 
     <!-- android:id="@+id/negative_trigger" --> 
     <!-- android:layout_width="wrap_content" --> 
     <!-- android:layout_height="wrap_content" --> 
     <!-- android:layout_marginLeft="100dp" --> 
     <!-- android:text="Negative" --> 
     <!-- android:textColor="#FFF" android:clickable="false"> --> 
     <!-- </RadioButton> --> 
     <!-- </RadioGroup> --> 
     <!-- </LinearLayout> --> 

     <LinearLayout 
      android:id="@+id/linearLayout5" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="25dp" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/textView15" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="TextView" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#000" 
       android:textStyle="bold" 
       android:visibility="invisible" > 
      </TextView> 

      <TextView 
       android:id="@+id/textView4" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Type of Trigger" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#FFF" 
       android:visibility="invisible" > 
      </TextView> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/linearLayout6" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <RadioGroup 
       android:id="@+id/TypeTrigger" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:visibility="invisible" > 

       <RadioButton 
        android:id="@+id/constant_trigger" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:checked="true" 
        android:text="Constant" 
        android:textColor="#FFF" 
        android:visibility="visible" > 
       </RadioButton> 

       <RadioButton 
        android:id="@+id/pulse_trigger" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="100dp" 
        android:text="Pulse" 
        android:textColor="#FFF" > 
       </RadioButton> 
      </RadioGroup> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/linearLayout2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="25dp" > 

      <TextView 
       android:id="@+id/textView16" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textStyle="bold" 
       android:visibility="invisible" /> 

      <TextView 
       android:id="@+id/textView17" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text=": Continuous or One Time (One Time Only Available for       Pulsed Input(s))" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:visibility="invisible" /> 
      </LinearLayout> 

      <LinearLayout 
      android:id="@+id/linearLayout1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 

      <RadioGroup 
       android:id="@+id/contOneTime" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:orientation="horizontal" 
       android:visibility="invisible" > 

       <RadioButton 
        android:id="@+id/continuous_trigger" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:checked="true" 
        android:text="Continuous" /> 

       <RadioButton 
        android:id="@+id/oneTime_trigger" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="80dp" 
        android:text="One Time" /> 
      </RadioGroup> 
      </LinearLayout> 

      <LinearLayout 
      android:id="@+id/linearLayout7" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="25dp" 
      android:orientation="vertical" 
      android:visibility="visible" > 

      <TextView 
       android:id="@+id/textView5" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Timer Configuration For Selected Input" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#FFF" 
       android:visibility="invisible" > 
      </TextView> 
      </LinearLayout> 


      <LinearLayout 
      android:id="@+id/linearLayout8" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/textView6" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Number of Pulses" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#FFF" 
       android:visibility="invisible" > 
      </TextView> 

      <EditText 
       android:id="@+id/NumberOfPulses" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:hint="0" 
       android:inputType="number" 
       android:numeric="integer" 
       android:visibility="invisible" > 

       <requestFocus> 
       </requestFocus> 
      </EditText> 

      <TextView 
       android:id="@+id/textView7" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.34" 
       android:text=" within," 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#FFF" 
       android:visibility="invisible" > 
      </TextView> 
      </LinearLayout> 

      <LinearLayout 
      android:id="@+id/linearLayout9" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp" 
      android:visibility="visible" > 

      <EditText 
       android:id="@+id/Minutes" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.00" 
       android:hint="0" 
       android:inputType="number" 
       android:numeric="integer" 
       android:visibility="invisible" > 
      </EditText> 

      <TextView 
       android:id="@+id/textView8" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.00" 
       android:text="Minutes," 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#FFF" 
       android:visibility="invisible" > 
      </TextView> 

      <EditText 
       android:id="@+id/Seconds" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.00" 
       android:hint="0" 
       android:inputType="number" 
       android:numeric="integer" 
       android:visibility="invisible" > 
      </EditText> 

      <TextView 
       android:id="@+id/textView9" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Seconds," 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#FFF" 
       android:visibility="invisible" > 
      </TextView> 

      <EditText 
       android:id="@+id/Milliseconds" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.00" 
       android:hint="0" 
       android:inputType="number" 
       android:numeric="integer" 
       android:visibility="invisible" > 
      </EditText> 

      <TextView 
       android:id="@+id/textView10" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Milliseconds." 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#FFF" 
       android:visibility="invisible" > 
      </TextView> 

      <TextView 
       android:id="@+id/textView2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.00" 
       android:text="Medium Text" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:visibility="invisible" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/linearLayout13" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp" 
      android:weightSum="1" > 

      <Button 
       android:id="@+id/inputAccept" 
       android:layout_width="159dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.04" 
       android:text="Accept" > 
      </Button> 

      <Button 
       android:id="@+id/button3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Button" 
       android:visibility="invisible" > 
      </Button> 

      <Button 
       android:id="@+id/inputSave" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.06" 
       android:text="Save" 
       android:visibility="invisible" > 
      </Button> 

      <Button 
       android:id="@+id/button5" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Button" 
       android:visibility="invisible" > 
      </Button> 

      <Button 
       android:id="@+id/inputLoad" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="0.05" 
       android:text="Load" 
       android:visibility="invisible" > 
       </Button> 
      </LinearLayout> 
     </LinearLayout> 
     </ScrollView> 

    </LinearLayout> 

(Proszę ktoś mi pomóc zrozumieć tę rzecz na zewnątrz, jego doprowadza mnie do szału !!). Chciałbym również wspomnieć, że wypróbowałem większość poprawek u ludzi, którzy mieli podobne problemy, takie jak wypełnienie portu widokowego i włączenie pionowego paska przewijania, z których żaden nie pomógł mi z moimi problemami. Próbowałem też dodać je do układu nadrzędnego i też nie działało.

+1

http://i.stack.imgur.com/uqJeW.png –

+0

Ok, więc mówisz, że chcesz móc przewijać, gdy klawiatura jest widoczna? Ale za każdym razem, gdy klikniesz poza ekranem klawiatury, zamyka się, prawda? - Jeśli tak, to w ten sposób zaprojektowano klawiaturę. Gdy docelowy widok wejściowy traci ostrość, zamyka się, ponieważ nie skupia się już na widoku docelowym. – Guardanis

+0

Nie, to nie mój problem. Mój problem pojawia się, gdy pojawia się klawiatura Nie mogę przewinąć do innych pól tekstowych w mojej aplikacji. Muszę ukryć klawiaturę, aby je zobaczyć i wpisać tekst. Chcę móc go przewijać. – Shant

Odpowiedz

16

Dodaj android:windowSoftInputMode="adjustResize" do tagu <activity> w AndroidManifest.xml. Spowoduje to zmianę rozmiaru ekranu na miejsce pozostałe po wyświetleniu klawiatury programowej. W rezultacie będziesz mógł przewijać, ponieważ ekran nie będzie w żaden sposób pokryty przez klawiaturę.

EDIT:

Pisałem minimalny przykład i przetestowane. Chyba że istnieje ogromne nieporozumienie, spróbuj ten kod, a następnie dowiedzieć się, dlaczego ciebie nie działa: układ

xml:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent" 
    > 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     > 

     <TextView 
      android:layout_height="2000dp" 
      android:layout_width="wrap_content" 
      android:gravity="top" 
      android:text="Scroll Down!"/> 

     <EditText 
      android:layout_height="wrap_content" 
      android:layout_width="fill_parent" 
      android:hint="Enter Text" 
      /> 
    </LinearLayout> 
</ScrollView> 

oczywisty:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.example" 
      android:versionCode="1" 
      android:versionName="1.0"> 
    <uses-sdk android:minSdkVersion="15"/> 
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher"> 
     <activity android:name="MyActivity" 
        android:label="@string/app_name" 
       android:windowSoftInputMode="adjustResize" 
       > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
    </application> 
</manifest> 
+1

Dodałem to, co sugerowałeś do znacznika aktywności w manifeście, a klawiatura nadal zakrywa ekran bez zmiany rozmiaru i nadal nie mogę przewijać! – Shant

+2

@Shant, powinieneś zaakceptować odpowiedź tylko jeśli jest poprawna! –

+1

@Shant, spróbuj uczynić ScrollView najbardziej zewnętrznym elementem układu. Po prostu przenieś także xmlns do tego. –

2

Witam również napotkał ten problem. Wystąpił problem polegający na tym, że dodano parametr adjustResize, jak pokazano poniżej w moim manifeście, ale nadal nie przewijał. Ale w moim pliku xml na początku mojego Scrollview

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_below="@+id/top" 
    android:scrollbars="none" > 

Usunąłem android: ScrollBars = "none" i rozwiązać mój problem. Tylko dla każdego, którego dostosowanie w manifeście nie zadziałało.

Powiązane problemy