Domanda

Sto sviluppando un'applicazione, Nella mia applicazione, sto usando Listview per la visualizzazione dei dati utilizzando l'analisi dom, voglio piè di pagina in listview, quando scatto piè di pagina aggiuntiva più dati aggiungere alla visualizzazione elenco, ho attaccato un'immagine, mi piacerebbe che il design e il processo, fare riferimento image1 e imgae2.I piè menzione nel rettangolo rosso

Fig1-piè di pagina come "Altre notizie"
alt text

alt text

Fig2-aggiungere ulteriori 10 record di aggiunta nel listview

È stato utile?

Soluzione

Creare un layout di visualizzazione footer composto di testo che si desidera impostare come piè di pagina e quindi provare

View footerView = ((LayoutInflater) ActivityContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
ListView.addFooterView(footerView);

Layout per il piè di pagina potrebbe essere qualcosa di simile:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:paddingTop="7dip"
    android:paddingBottom="7dip"
    android:orientation="horizontal"
    android:gravity="center">

    <LinearLayout 
        android:id="@+id/footer_layout" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center"
        android:layout_gravity="center">

    <TextView 
        android:text="@string/footer_text_1" 
        android:id="@+id/footer_1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textSize="14dip" 
        android:textStyle="bold" 
        android:layout_marginRight="5dip" />
    </LinearLayout>
</LinearLayout> 

La classe di attività potrebbe essere:

public class MyListActivty extends ListActivity {
    private Context context = null;
    private ListView list = null;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        list = (ListView)findViewById(android.R.id.list);

        //code to set adapter to populate list
        View footerView =  ((LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_layout, null, false);
        list.addFooterView(footerView);
    }
}

Altri suggerimenti

So che questa è una domanda molto vecchio, ma ho cercato con Google il mio modo qui e ho trovato la risposta fornita non al 100% soddisfacente, perché come Gcl1 detto - in questo modo il piè di pagina non è davvero un piè di pagina allo schermo - è solo un " add-on" alla lista.

Linea di fondo - per gli altri che potrebbero google il loro modo qui - ho trovato il seguente suggerimento qui: fissi e sempre visibile piè di pagina in basso ListFragment

Prova a fare come segue, dove l'enfasi è sul pulsante (o qualsiasi elemento piè di pagina) elencato per primo nel XML - e poi la lista si aggiunge come "layout_above":

<RelativeLayout>

<Button android:id="@+id/footer" android:layout_alignParentBottom="true"/> 
<ListView android:id="@android:id/list" **android:layout_above**="@id/footer"> <!-- the list -->

</RelativeLayout>

Le risposte qui sono un po 'obsolete. Anche se il codice rimane lo stesso ci sono alcuni cambiamenti nel comportamento.

public class MyListActivity extends ListActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        TextView footerView = (TextView) ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_view, null, false);
        getListView().addFooterView(footerView);
        setListAdapter(new ArrayAdapter<String>(this, getResources().getStringArray(R.array.news)));
    }
}

Informazioni su metodo addFooterView()

  

Aggiungi vista fissato per comparire in fondo alla lista. Se addFooterView() è chiamato più di una volta, il punto di vista appariranno nell'ordine in cui sono stati aggiunti. Vista aggiunti utilizzando questa chiamata può prendere fuoco se vogliono.

La maggior parte delle risposte di cui sopra lo stress punto molto importante -

  

addFooterView() deve essere chiamato prima di chiamare setAdapter().This è così ListView può avvolgere il cursore che accompagna uno che sarà anche conto di vista di intestazione e piè.

Da Kitkat questo è cambiato.

  

Nota: Quando la prima volta, questo metodo potrebbe essere chiamato solo prima di impostare l'adattatore con setAdapter (ListAdapter). A partire da KITKAT, questo metodo può essere chiamato in qualsiasi momento. Se l'adattatore della ListView non si estende HeaderViewListAdapter, esso sarà spostato con un'istanza di supporto WrapperListAdapter.

Documentazione

Se il ListView è un figlio del ListActivity:

getListView().addFooterView(
    getLayoutInflater().inflate(R.layout.footer_view, null)
);

(all'interno onCreate ())

L'attività in cui si desidera aggiungere piè di pagina dell'elenco articolo e ho anche generare un evento su ListView footer clic.

  public class MainActivity extends Activity
{

        @Override
        protected void onCreate(Bundle savedInstanceState)
         {

            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            ListView  list_of_f = (ListView) findViewById(R.id.list_of_f);

            LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

            View view = inflater.inflate(R.layout.web_view, null);  // i have open a webview on the listview footer

            RelativeLayout  layoutFooter = (RelativeLayout) view.findViewById(R.id.layoutFooter);

            list_of_f.addFooterView(view);

        }

}

activity_main.xml

<?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"
    android:background="@drawable/bg" >

    <ImageView
        android:id="@+id/dept_nav"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/dept_nav" />

    <ListView
        android:id="@+id/list_of_f"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/dept_nav"
        android:layout_margin="5dp"
        android:layout_marginTop="10dp"
        android:divider="@null"
        android:dividerHeight="0dp"
        android:listSelector="@android:color/transparent" >
    </ListView>

</RelativeLayout>

In questa domanda, risposta migliore non funziona per me. Dopo di che ho trovato questo metodo per mostrare piè di pagina dell'elenco articolo,

LayoutInflater inflater = getLayoutInflater();
ViewGroup footerView = (ViewGroup)inflater.inflate(R.layout.footer_layout,listView,false);
listView.addFooterView(footerView, null, false);

e creare nuovi footer_layout chiamata il layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Done"
        android:textStyle="italic"
        android:background="#d6cf55"
        android:padding="10dp"/>
</LinearLayout>

Se non lavoro riferimento questo articolo sentire

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top