2012-09-10 14 views
14

私はListFragmentの一番下に固定して常に見えるフッターを添付しようとしています。ListFragmentの下に固定された、常に見えるフッター

私は現在、このようにそれをやっている:

@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); 
} 

このコードは、リストの一番下にあるビューを生成しますが、それは本当に私がやりたいことはありません。

まず、私は、リストがスクロールされている場所に関係なく、画面に表示される、つまり、固定されるようにフッターを必要とします。このソリューションでは、フッターは、画面がリストの一番下までスクロールされている場合にのみ表示されます。

第2に、リストが空であってもフッターが表示される必要があります。このソリューションでは、リストが空のときにフッターは表示されません。

固定フッタ(私の場合はボタン)を常にListFragmentまたはListActivityの下に表示する最も良い方法は何ですか?

ありがとうございます!

答えて

40

あなたは、XMLレイアウトでそれを行うことができます。

<RelativeLayout> 

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

</RelativeLayout> 

このレイアウトは、フラグメントのonCreateView方法で使用されます。

+0

プレーンな古いフラグメントではなく、ListFragmentを使用していてもこれは機能しますか?それとも、それを断片に変換する必要がありますか? – gcl1

+0

@ gcl1 'ListFragment'は、Viewが' android.R.id.list'というIDを持つ単純な 'ListView'であるフラグメントです。 'ListFragment'を使用することはできますが、' onCreateView'メソッドをオーバーライドして、私の答えからレイアウトを返すだけです。現在の 'ListFragment'から残りのコードは同じままです。 – Luksprog

+0

ありがとう、それを試してみましょう.... – gcl1

関連する問題