2012-07-02 10 views
10

He estado tratando de desplazar esta vista de desplazamiento, y no he tenido suerte al hacerlo. He intentado muchos tipos de correcciones, pero parece que no funciona. Me gustaría poder desplazarme por mi página cuando se selecciona un cuadro de edición y el teclado ocupa la mitad de la pantalla. De esta manera puedo navegar al resto de los cuadros de edición y al botón Aceptar en la parte inferior de la página, sin tener que ocultar manualmente el teclado cada vez.No se puede obtener ScrollView para desplazarse cuando se muestra el teclado virtual

Aquí está mi código 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> 

(Por favor, que alguien me ayude a resolver esto, que me conduce loco !!). También me gustaría mencionar que he probado la mayoría de las correcciones con personas que tenían problemas similares, como llenar el puerto de visualización y habilitar la barra de desplazamiento vertical, y ninguno de estos me ayudó con mis problemas. También intenté agregarlos al diseño principal y tampoco parecía funcionar.

+1

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

+0

Ok, ¿entonces estás diciendo que quieres ser capaz de desplazarte cuando el teclado está visible? Pero cada vez que haces clic fuera de la pantalla del teclado, se cierra, ¿verdad? - Si es así, así es como está diseñado el teclado. Cuando la vista de entrada de destino pierde el foco, se cierra porque ya no tiene foco en la vista de destino. – Guardanis

+0

No, no es mi problema. Mi problema es cuando aparece el teclado No puedo desplazarme a los otros cuadros de texto en mi aplicación. Tengo que esconderme en el teclado para verlos e ingresar texto. Quiero ser capaz de desplazarme por él. – Shant

Respuesta

16

Agregue android:windowSoftInputMode="adjustResize" a la etiqueta <activity> en su AndroidManifest.xml. Esto causará que la pantalla cambie de tamaño al espacio que quede después de que se muestre el teclado del software. Como resultado, podrá desplazarse, ya que la pantalla no estará cubierta por el teclado de ninguna manera.

EDIT:

He escrito un ejemplo mínimo y probado. A menos que haya un gran malentendido, probar este código y luego averiguar por qué el suyo no funciona: diseño

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> 

manifiesta:

<?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

Agregué lo que sugirió a la etiqueta de actividad en el manifiesto, y el teclado aún cubre la pantalla sin cambiar el tamaño y todavía no puedo desplazarme. – Shant

+2

@Shant, ¡solo debe aceptar la respuesta si es correcta! –

+1

@Shant, intente hacer que ScrollView sea el elemento más externo en el diseño. Simplemente mueva los xmlns en él también. –

2

Hola encontré este problema también. El problema que tuve fue que agregué adjustResize como se muestra a continuación en mi Manifiesto

y todavía no se desplazaba. Pero en mi archivo XML en el comienzo de mi ScrollView

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

He eliminado androide: barras de desplazamiento = "ninguno" y que resuelto mi problema. Solo para cualquiera cuyo ajuste en el manifiesto no funcionó.

Cuestiones relacionadas