2012-09-10 8 views
14

Ich versuche, eine Fußzeile, die fest und immer sichtbar ist, an den unteren Rand eines ListFragments anzuhängen.Feste und immer sichtbare Fußzeile unterhalb von ListFragment

Ich bin es so zur Zeit tun:

@Override public void onActivityCreated(Bundle savedInstanceState) { 

    // ... 

    adapter = new MyAdapter(getActivity(), R.layout.list, dataList); 

    ListView list = getListView(); 
    View footer = ((LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_add, null, false); 

    list.addFooterView(footer); 
    setListAdapter(adapter); 
} 

Während dieser Code eine Ansicht im unteren Bereich der Liste erzeugen, dass es nicht tun, was ich will:

Erstens Ich muss die Fußzeile FIXED, dh auf dem Bildschirm sichtbar, unabhängig davon, wo die Liste gescrollt wird. Bei dieser Lösung ist die Fußzeile nur sichtbar, wenn der Bildschirm zum Ende der Liste gescrollt wird.

Zweitens brauche ich die Fußzeile, auch wenn die Liste leer ist. In dieser Lösung ist die Fußzeile nicht sichtbar, wenn die Liste leer ist.

Was ist der beste Weg, um eine feste Fußzeile (in meinem Fall eine Schaltfläche) immer unter einem ListFragment oder ListActivity erscheinen zu lassen?

Danke!

Antwort

40

Sie können die in dem XML-Layout tun:

<RelativeLayout> 

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

</RelativeLayout> 

Dieses Layout wird in der onCreateView Methode des Fragments verwendet werden.

+0

Würde das funktionieren, selbst wenn ich ein ListFragment anstelle eines einfachen alten Fragments verwende? Oder müsste ich es in ein Fragment umwandeln? – gcl1

+0

@ gcl1 Ein 'ListFragment' ist ein Fragment, für das die View ein einfaches' ListView' mit der ID 'android.R.id.list' ist. Sie können immer noch das 'ListFragment' verwenden, Sie müssen nur die' onCreateView' Methode überschreiben und das Layout aus meiner Antwort zurückgeben. Der Rest Ihres Codes aus dem aktuellen 'ListFragment' bleibt gleich. – Luksprog

+0

Danke, lass mich das versuchen ... – gcl1

Verwandte Themen