Vista di piè di pagina di Android ListView non posta in fondo allo schermo

Sono sicuro che mi manca qualcosa di semplice per get questo attuato, ma ho eseguito each combinazione conosciuta che posso fare per get quello che sto cercando di lavorare. Sto provando ad avere un piè di pagina di ListView che si siede in fondo allo schermo quando gli elementi di ListView non riempiono la pagina.

Ad esempio, ho una pagina con un ListView di tre elementi e un FooterView (utilizzando l'addFooterView di ListView). Voglio che il footerView sia posizionato nella parte inferiore dello schermo. Quando il ListView contiene elementi sufficienti per scorrere lo schermo, il footerView dovrebbe essere posto alla fine dell'elenco (non in fondo alla schermata).

  • Passaggio di dati da un destinatario di trasmissione a un'altra attività
  • Come aggiungere PDFBox a un progetto Android o suggerire un'alternativa
  • Come fare RatingBar per mostrare cinque stelle
  • Accedi a foto dalle app Pictures nella mia applicazione Android
  • Collegamento a MySQL Database utilizzando PHP da un dispositivo Android
  • Come creare / scrivere il file nella root del dispositivo android?
  • L'XML che sto cercando di utilizzare è elencato di seguito. Tutto l'aiuto è molto apprezzato!

    layout.xml

    <?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:background="@+drawable/background"> <ListView android:id="@+id/menu" android:layout_width="fill_parent" android:layout_height="fill_parent" android:listSelector="@android:color/transparent" android:divider="@null"> </ListView></RelativeLayout> 

    ListViewRow.xml

     <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" style="@style/Nationwide.menu"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/nav_item" style="@style/Nationwide.menu.row"> <ImageView android:id="@+id/image_icon" style="@style/Nationwide.menu.leftIcon" /> <TextView android:id="@+id/nav_text" style="@style/Nationwide.menu.text" /> <ImageView android:id="@+id/chevron_symbol" style="@style/Nationwide.menu.rightIcon" /> </LinearLayout> <View android:layout_height="1dp" android:background="@drawable/nav_item_divider_dark" /> <View android:layout_height="1dp" android:background="@drawable/nav_item_divider_light" /></LinearLayout> 

    ListViewFooter.xml

     <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/footer" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true"> <View android:id="@+id/footer_image" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true" /></RelativeLayout> 

    Giava

      LayoutInflater inflater = this.getLayoutInflater(); View footerView = inflater.inflate(R.layout.footer, null); footerView.findViewById(R.id.footer_image).setBackgroundDrawable(resources.getDrawable(R.drawable.cone_footer)); mMenuListView.addFooterView(footerView); 

    Le cose che ho provato finora includono:

    • Aggiunta della vista del piè di pagina come mostrato in precedenza
    • Aggiunta della risorsa disegnata come background sul ListView (questo ha causato la visualizzazione di ListView per non span tutta la width dello schermo e scorrimento in modo strano a causa delle 9 zone patch stretchable)
    • Aggiunta del cone_footer come vista separata nel layout

    Grazie in anticipo!

  • come mostrare la barra di avanzamento (cerchio) in un'attività che ha una listview prima di caricare la list con i dati
  • Spostare l'indicatore lentamente dalla parte superiore dello schermo alla posizione sulla mappa android V2
  • ClassNotFoundException quando unmarshalling: android.support.v4.view.ViewPager $ SavedState
  • Qual è la dimensione del carattere del titolo ActionBar predefinito?
  • Come faccio a controllare su MultiChoice AlertDialog
  • Tastiera morbida di Android in una vista di superficie a schermo integer
  • 5 Solutions collect form web for “Vista di piè di pagina di Android ListView non posta in fondo allo schermo”

    Voglio che il footerView sia seduto in fondo allo schermo.

    Questo non è come funziona addFooterView() .

    Quando il ListView contiene elementi sufficienti per scorrere lo schermo, il footerView dovrebbe essere posto alla fine dell'elenco (non in fondo alla schermata).

    Anche questo non è come funziona addFooterView() .

    Se vuoi scorrere con l'elenco (ad esempio, se le tre voci dell'elenco occupano la metà superiore dello schermo, il piè di pagina è proprio sotto i tre elementi), quindi utilizza addFooterView() … ma poi il piè di pagina si scorre sempre con l'elenco.

    Se vuoi che non scorri con l'elenco, un approccio consiste nell'utilizzare un RelativeLayout come tuo padre, ancorare il piè di pagina in fondo alla schermata e far ListView il ListView tra la parte superiore e il piè di pagina … ma poi il piè di pagina non scorre mai.

    Nel caso in cui altri cercano una risposta simile, ecco quello che ho finito per fare per risolvere il problema che avevo. Poiché la "piè di pagina" che stavo cercando di aggiungere era semplicemente un'image per riempire uno spazio nello schermo (per quando le visualizzazioni erano corte) e l'approccio ListView non era proprio quello di cui avevo bisogno per la mia implementazione, abbiamo finito con questo come il nostro layout XML:

      <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res/com.example.android.apis" style="@style/company.mainContainer"> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <!-- enter page content here --> <View android:layout_height="0px" android:layout_weight="1" android:visibility="invisible" /> <ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:scaleType="fitXY" android:src="@drawable/footer_cone"> </ImageView> </LinearLayout> </ScrollView> 

    Spero che questo aiuta gli altri!

    Quello che stai cercando di fare è in realtà piuttosto complicato. Volete che il "footer" scorri con l'elenco (a volte alless), il che significa che deve essere contenuto all'interno del layout ListView. Ma anche voi (anche altre volte) vuoi che lo stesso footer sia posizionato rispetto allo schermo o, più precisamente, relativo a qualche layout genitore (o genitore-genitore, ecc.) Del ListView, il che significa che il footer non deve essere contenuto all'interno del ListView. Questi due scenari richiedono l'inserimento reciprocamente esclusivo dell'elemento in questione.

    Questo non è un aspetto negativo sulla parte SDK, però. Dalla tua descrizione sembra che tu possa pensare al problema nel modo sbagliato. Questo elemento è veramente un piè di pagina, concettualmente, se non è sempre al "piede" dell'elenco, ma a volte in fondo alla schermata? Potresti essere in grado di rendere il tipo di layout che desideri combinando ListViews, ScrollViews, RelativeLayouts e alcuni trucchi android: layout_height. Può essere una mossa migliore però semplicemente prendere un approccio alternativo al tuo disegno.

    Stesso Come questo

     <RelativeLayout> <include android:id="@+id/header" layout="@layout/header" android:layout_width="fill_parent" android:layout_alignParentTop="true" /> <include android:id="@+id/footer" layout="@layout/footer" android:layout_width="fill_parent" android:layout_alignParentBottom="true" /> <ListView android:layout_below="@id/header" android:layout_above="@id/footer"/> </RelativeLayout> 

    ecco il trucco di margine che ho usato per conseguire quel comportmento.

    fondamentalmente si imposta il ListView su wrap_content e si posiziona il Button nello spazio di margine inferiore di ListView usando il margine negativo.

    questo utilizza un'altezza fissa, ma è anche ansible misurare il button in fase di runtime e impostare dynamicmente il margine positivo e negativo.

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/list_item" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="50dp" android:layout_alignParentTop="true" /> <Button android:layout_width="fill_parent" android:layout_height="50dp" android:layout_below="@+id/list_item" android:paddingBottom="@dimen/margin" android:layout_topMargin="-50dp" android:paddingTop="@dimen/margin" android:text="@string/add" /> </RelativeLayout> 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.