2012-02-17 18 views
31

Voglio implementarlo: una ScrollView che contiene molti elementi (ImageViews, TextViews, EditTexts ecc.) E quindi dopo ScrollView alcuni pulsanti (che sono personalizzati ImageViews) che appaiono sempre esattamente a la parte inferiore dello schermo.Android ScrollView e pulsanti nella parte inferiore dello schermo

Se utilizzo l'attributo android: fillViewport = "true", se gli elementi di ScrollView sono troppo grandi per adattarsi alle dimensioni dello schermo, i pulsanti diventano invisibili. Se utilizzo l'attributo android: Weight = 1, ScrollView ottiene solo il 50% dello schermo quando lo schermo è grande e può andare bene (voglio che i pulsanti prendano una piccola percentuale, circa il 10%). Se imposto l'androide: peso a valori più grandi, i pulsanti appaiono molto piccoli.

Si prega di aiuto! Forse è qualcosa di semplice che ho trascurato ma ho battuto la testa per ore!

+0

prega di mostrare il file di layout –

risposta

72

appena creato e testato. Sembra che tu voglia.

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <LinearLayout 
      android:id="@+id/buttons" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:gravity="center" 
      android:layout_alignParentBottom="true"> 
     <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Custom Button1"/> 
     <Button 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Custom Button2"/> 
    </LinearLayout> 

    <ScrollView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_above="@id/buttons"> 
     <!--Scrollable content here--> 
     <LinearLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical">     
      <TextView 
        android:layout_height="wrap_content" 
        android:layout_width="wrap_content" 
        android:text="test text" 
        android:textSize="40dp"/> 
     </LinearLayout> 
    </ScrollView> 

</RelativeLayout> 
+0

che funziona alla grande! Grazie! – george

+0

Ho avuto un problema simile. Funzionava bene con questa soluzione – zolio

+0

Quando ScrollView si riempie, non scriverà sui pulsanti? – FractalBob

2

ScrollView non può adattarsi allo schermo, perché si è messo su un layout lineare, il layout in forma in modo lineare nella schermata,

solo cercare di fare ScrollView come elemen root sul tracciato xml

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

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
     <!-- Here you can put some XML stuff and BOOM! your screen fit to scrollview --> 

    </LinearLayout> 
</ScrollView> 
3

Questo ha funzionato per me. Dare alla vista di scorrimento un peso di 1. Metti tutti gli altri widget seguendo la vista di scorrimento in un layout. La vista di scorrimento crescerà abbastanza da non bloccare il resto.

Widgets in scroll view and rest at bottom

9
<?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:orientation="vertical"> 
    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"> 
     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 
      <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hello World" 
      /> 
      <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Hallo Welt" 
      />  
     </LinearLayout> 
    </ScrollView> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="0"> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Go next page" 
      android:layout_alignParentRight="true" /> 
    </RelativeLayout> 

</LinearLayout> 
+0

Ciao sto avendo il layout con headder e scrolview dei campi di input e del piè di pagina quando arriva la tastiera che il piè di pagina anche scorrere verso l'alto.come per sistemare il piè di pagina in bottom.please help me – Harsha

+0

Ha funzionato ero in difficoltà per trovare la soluzione per 3 ore passate. – chanakya

Problemi correlati