2010-03-12 20 views
12

Tengo un diseño que hace casi lo que quiero. Solo hay un error con respecto al botón en la parte inferior. Debería permanecer abajo en todo momento. Pero cada vez que abro el teclado virtual, el botón se mostrará sobre el teclado. Esto no es lo que quiero, pero debería quedar cubierto por el teclado.Verifique mi diseño: el botón inferior sigue apareciendo sobre el teclado

Por otra parte, me gustaría que comentaras cómo se construyó el diseño.

Gracias, steff

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

<LinearLayout android:id="@+id/l_layout_tags" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <TextView 
     android:text="TAGS:" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
    <AutoCompleteTextView android:id="@+id/actv_tags" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:imeOptions="actionDone" /> 
    <ImageButton android:id="@+id/btn_add_tag" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_input_add" 
     android:onClick="addTag"/> 
</LinearLayout> 

<ScrollView android:id="@+id/sv_scroll_contents" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/l_layout_tags" 
    android:scrollbarFadeDuration="2000" > 
    <TableLayout android:id="@+id/t_layout_contents" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:stretchColumns="1" 
     android:paddingRight="5dip"> 
     <TableRow android:id="@+id/tr_template"> 
      <ImageView android:id="@+id/iv_blank" 
       android:src="@android:color/transparent" /> 
      <EditText android:id="@+id/et_content1" 
       android:gravity="top" 
       android:maxWidth="200dp" 
       android:imeOptions="actionDone" /> 
     </TableRow> 
    </TableLayout> 
</ScrollView> 

<LinearLayout android:id="@+id/l_layout_media_btns" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:layout_centerHorizontal="true" 
    android:layout_below="@id/sv_scroll_contents" > 
    <ImageButton android:id="@+id/btn_camera" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_menu_camera" 
     android:onClick="takePicture" /> 
    <ImageButton android:id="@+id/btn_video" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_menu_camera" /> 
    <ImageButton android:id="@+id/btn_audio" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_btn_speak_now" /> 
    <ImageButton android:id="@+id/btn_sketch" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@android:drawable/ic_menu_edit" /> 
</LinearLayout> 

<ImageButton android:id="@+id/btn_save_note" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:src="@android:drawable/ic_menu_upload" /> 

</RelativeLayout> 

Respuesta

51

Añadir android:windowSoftInputMode="adjustPan" a su etiqueta de actividad en el AndroidManifest.xml.

De esta forma, el teclado del software no cambiará el tamaño de su diseño y su botón permanecerá debajo. Eche un vistazo a here para tener una mejor idea sobre los diferentes modos de teclado suave.

+0

Impresionante, que funcionó. Gracias por tu ayuda. – stfn

+0

Y podría comentar sobre el diseño en sí? ¿Es completamente redundante? Gracias, compañero – stfn

+0

Y una cosa más: cuando llene el EditText de cambio de tamaño automáticamente (lo que quiero) comienza a estar cubierto por el botón mencionado en algún momento. ¿Cómo puedo modificar el diseño de tal forma que el botón permanezca en la parte inferior y no cubra nada? – stfn

1

Tuve un problema similar. En el que tengo que mostrar un botón en la parte inferior de la pantalla siempre. Resolví el problema de que el botón viene del teclado de la siguiente manera:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" 
    android:background="@color/white" 
    android:gravity="center_horizontal" 
    > 
     <ScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/white" 
     android:layout_gravity="center" 
     android:id="@+id/ff" 
     > 
       ....... 
     </ScrollView> 

     <LinearLayout android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1"> 
      <TextView 
      android:id="@+id/txtSigninProblem" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"   
      android:layout_below="@+id/ff" 
      android:layout_gravity="bottom|center_horizontal"   
      android:text="Problem Signing in?" 
      /> 
     </LinearLayout> 
</LinearLayout> 
Cuestiones relacionadas