2011-05-24 19 views
12

Mi diseño es similar a esto:Forzar adjustPan en la actividad que contiene ScrollView

<RelativeLayout> 
    <RelativeLayout> 
    </RelativeLayout> 
    <ViewFlipper> 
     <ScrollView> 
      <LinearLayout> 
       <EditText /> 
      </LinearLayout> 
     </ScrollView> 
    </ViewFlipper> 
    <RelativeLayout> 
    </RelativeLayout> 
</RelativeLayout> 

Cuando se centró en la EditarTexto en el medio, el teclado en pantalla aparece como se espera, sin embargo, siempre se cambia el tamaño de la disposición a pesar de que tengo android:windowSoftInputMode="adjustPan" en el manifiesto

El problema con el cambio de tamaño es que sólo el ScrollView encoge, dejando a los RelativeLayouts encima y por debajo intacto, que casi se puede oscurecer por completo la EditarTexto.

He intentado ocultar RelativeLayouts cuando se muestra el teclado (esa es otra historia triste), pero ajustarPan suena más adecuado. Sin embargo, no tiene ningún efecto en esta actividad.

¿Cómo puedo forzar el ajustePan para que funcione a pesar de la presencia de ScrollView?

Actualización:

SO no me deja responder a mi propia pregunta, pero la solución es establecer android:isScrollContainer="false" en el ScrollView.

+0

Esto me ahorró un montón de tiempo. ¡Muchas gracias! –

Respuesta

-1

probar esto en su manifiesto de la etiqueta de actividad:

android:windowSoftInputMode="stateVisible|adjustPan" 
+5

De acuerdo con la documentación de Android, no debe usar adjustResize & adjustPan tag together. Debería ser uno o el otro. – Rise

0

Buena pregunta sobre todo Desarrolladores hacer lo mismo, pero esto no es una forma correcta de que haya que hacer. Esto te ayudara.

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


<ViewFlipper> 
    <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
     > 
      <EditText /> 
     </LinearLayout> 
    </ScrollView> 
</ViewFlipper> 
<LinearLayout> 

Debe tomar LinearLayout con orientación vertical como horizontal o ver donde tienes Nunca problema de ajuste created.this es muy simple.

Cuestiones relacionadas