2010-03-12 7 views
12

Ho un layout che fa quasi quello che voglio. C'è solo un bug riguardante il pulsante in basso. Dovrei stare sempre in fondo. Ma ogni volta che apro la tastiera virtuale il pulsante verrà visualizzato sopra la tastiera. Questo non è quello che voglio ma dovrebbe essere coperto dalla tastiera.Per favore verifica il mio layout: il pulsante in basso continua ad apparire sulla tastiera

Inoltre, sarei felice se potessi commentare come è stato costruito il layout.

Grazie, 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> 

risposta

51

Aggiungi android:windowSoftInputMode="adjustPan" al tag attività nel AndroidManifest.xml.

In questo modo, la tastiera del software non ridimensionerà il layout e il pulsante rimarrà sotto di esso. Dai uno sguardo allo here per avere un'idea migliore delle diverse modalità della tastiera virtuale.

+0

Impressionante, questo ha fatto il trucco. Grazie per l'aiuto. – stfn

+0

E potresti commentare il layout stesso? È completamente ridondante? Grazie, amico – stfn

+0

E un'altra cosa: quando riempio il ridimensionamento automatico di EditText (cosa voglio) inizia ad essere coperto dal pulsante sopra menzionato ad un certo punto. Come posso modificare il layout in modo tale che il pulsante rimanga in basso e non copra nulla? – stfn

1

Ho avuto un problema simile. In cui devo mostrare sempre un pulsante nella parte inferiore dello schermo. Ho risolto il problema del pulsante è in arrivo della tastiera nel modo seguente:

<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> 
Problemi correlati