2013-03-16 16 views
7

Nel mio layout ci sono quattro sezioni rispettivamente un'intestazione, un controllo modificabile, un elenco e un insieme di pulsanti. Voglio mantenere i pulsanti in basso sullo schermo. Faccio troppe modifiche nel layout per forzare i pulsanti in basso. Ma non è successo niente. Si prega di fornire istruzioni per rendere ciò di cui avevo bisogno. Vi metto il layout anchecome allineare un set di pulsante alla parte inferiore dello schermo in Android

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

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

     <!-- heading for basic settings --> 
     <TextView 
      android:id="@+id/setup_macroheading" 
      style="@style/txtHeading" /> 

     <View 
      android:layout_width="fill_parent" 
      android:layout_height="20dp"/> 

     <!-- macro name --> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="20dp" 
      android:paddingRight="20dp" 
      android:orientation="horizontal"> 

      <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="left|center_vertical" 
       android:layout_weight="1" 
       android:textColor="@color/white"      
       android:text="Macro Name"/> 

      <EditText 
       android:id="@+id/setup_macroname" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:layout_weight="1" 
       android:maxLength="12" 
       android:inputType="textCapCharacters" 
       android:singleLine="true"/>     
     </LinearLayout> 

     <View 
      android:layout_width="fill_parent" 
      android:layout_height="20dp"/> 

     <ListView 
      android:id="@+id/lvMacroList" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
     /> 

     <!-- Save & Cancel button --> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="20dp" 
      android:paddingRight="20dp" 
      android:layout_gravity="bottom" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/setup_macroSavebtn" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="left" 
       android:layout_weight="1" 
       android:onClick="onSaveButtonClick" 
       android:text="Save"/> 

      <Button 
       android:id="@+id/setup_macroCancelbtn" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:layout_weight="1" 
       android:onClick="onCancelButtonClick" 
       android:text="Cancel"/>   
     </LinearLayout> 
    </LinearLayout> 
    </ScrollView> 

enter image description here

risposta

7

Fai il capogruppo del LinearLayout contenente il pulsante come relativo e imposta la proprietà del layout lineare contenente due pulsanti come android: layout_alignParentBottom = "true". È inoltre possibile impostare la gravità del layout lineare su fondo.

Prova questo:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

     <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 
    <!-- heading for basic settings --> 
    <TextView 
     android:id="@+id/setup_macroheading" 
     style="@style/txtHeading" /> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="20dp"/> 

    <!-- macro name --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" 
     android:orientation="horizontal"> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left|center_vertical" 
      android:layout_weight="1" 
      android:textColor="@color/white"      
      android:text="Macro Name"/> 

     <EditText 
      android:id="@+id/setup_macroname" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_weight="1" 
      android:maxLength="12" 
      android:inputType="textCapCharacters" 
      android:singleLine="true"/>     
    </LinearLayout> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="20dp"/> 

    <ListView 
     android:id="@+id/lvMacroList" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
    /> 
</LinearLayout> 
    <!-- Save & Cancel button --> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_gravity="bottom" 
     android:orientation="horizontal" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" > 

     <Button 
      android:id="@+id/setup_macroSavebtn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:layout_weight="1" 
      android:onClick="onSaveButtonClick" 
      android:text="Save"/> 

     <Button 
      android:id="@+id/setup_macroCancelbtn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_weight="1" 
      android:onClick="onCancelButtonClick" 
      android:text="Cancel"/>   
    </LinearLayout> 
</RelativeLayout> 

6

Prendere il genitore principale, come il layout relativa e dare android:layout_alignParentBottom="true" al layout dei tasti ...

+0

E 'possibile senza modificare il layout in relativo? – Riskhan

+0

prova a spostare il layout del pulsante all'esterno della visualizzazione di scorrimento, ma devi ancora prendere un layout principale che tenga sia la vista di scorrimento che il layout del pulsante inferiore –

+0

Ho cambiato la visualizzazione principale in scrollview relativa e rimossa, ora tutti i controlli si sovrappongono a vicenda – Riskhan

2

è necessario utilizzare il layout padre come relativo e quindi utilizzare l'androide immobili: layout_alignParentBottom = "true" per sublayout.

1

Prova questo codice facendo disposizione relativa come il layout genitore e Android: layout_alignParentBottom = "true" per il layout pulsante

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

<!-- heading for basic settings --> 

<ScrollView 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <View 
      android:layout_width="fill_parent" 
      android:layout_height="20dp" /> 

     <!-- macro name --> 

     <LinearLayout 
      android:id="@+id/llTop" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:paddingLeft="20dp" 
      android:paddingRight="20dp" > 

      <TextView 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="left|center_vertical" 
       android:layout_weight="1" 
       android:text="Macro Name" /> 

      <EditText 
       android:id="@+id/setup_macroname" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:layout_weight="1" 
       android:inputType="textCapCharacters" 
       android:maxLength="12" 
       android:singleLine="true" /> 
     </LinearLayout> 

     <!-- Save & Cancel button --> 

    </RelativeLayout> 
</ScrollView> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:orientation="horizontal" 
    android:paddingLeft="20dp" 
    android:paddingRight="20dp" > 

    <Button 
     android:id="@+id/setup_macroSavebtn" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_weight="1" 
     android:onClick="onSaveButtonClick" 
     android:text="Save" /> 

    <Button 
     android:id="@+id/setup_macroCancelbtn" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right" 
     android:layout_weight="1" 
     android:onClick="onCancelButtonClick" 
     android:text="Cancel" /> 
</LinearLayout> 

2

disposizione relativa è il modo migliore per farlo come Karan_Rana suggerito , ma se non desidera utilizzare il layout relativa provare questo:

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

    <!-- heading for basic settings --> 
    <TextView 
     android:id="@+id/setup_macroheading" 
     android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
     /> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="20dp"/> 

    <!-- macro name --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" 
     android:orientation="horizontal"> 

     <TextView 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left|center_vertical" 
      android:layout_weight="1" 
      android:textColor="@color/white"      
      android:text="Macro Name"/> 

     <EditText 
      android:id="@+id/setup_macroname" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_weight="1" 
      android:maxLength="12" 
      android:inputType="textCapCharacters" 
      android:singleLine="true"/>     
    </LinearLayout> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="20dp"/> 

    <ListView 
     android:id="@+id/lvMacroList" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

</LinearLayout> 
</ScrollView> 

<!-- Save & Cancel button --> 
     <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingLeft="20dp" 
     android:paddingRight="20dp" 
     android:layout_weight="0" 
     android:layout_gravity="bottom" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/setup_macroSavebtn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:layout_weight="1" 
      android:onClick="onSaveButtonClick" 
      android:text="Save"/> 

     <Button 
      android:id="@+id/setup_macroCancelbtn" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_weight="1" 
      android:onClick="onCancelButtonClick" 
      android:text="Cancel"/>   
    </LinearLayout> 

Qui, è necessario utilizzare LinearLayout come genitore e impostare weightSum ad esso e applicare lo stesso layout_weight al layout che si desidera a schermo intero. E il layout che si desidera in fondo (salvare e annullare) applica layout_weight a 0.

Questo funziona bene!

0

provare questo.

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentBottom="true" > 

     <Button 
      android:id="@+id/button1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_marginRight="2dp" 
      android:text="Modify" /> 

     <Button 
      android:id="@+id/button2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_marginRight="2dp" 
      android:text="Cancle" /> 

    </LinearLayout> 

</RelativeLayout> 

per pulsante di visualizzazione in basso.

Problemi correlati