1

Eclipse と Android アプリの開発は初めてです。この問題を 2 日間解決しようとしていますが、うまくいきません。ネットとドキュメンテーションを何時間もサーフィンしました。:S

私は ListFragment と Button を RelativeLayout で囲んでいます。ボタンはリストの下にあり、リストはアプリの起動時に最初は空です。これは私が望むものです。私は ArrayAdapter を使用しており、アイテム (今のところ String オブジェクト) は ArrayList 内にあります。

ボタンをクリックすると、リストが新しいアイテムで更新され、新しいアイテムが表示されているリストの下部、ボタンのすぐ上に表示されることを除いて、すべて正常に機能します。ボタンをもう一度クリックすると、新しいアイテムがリストの一番下に表示され、最初のアイテムが 2 番目のアイテムの上に移動します。それはなぜですか、どうすれば修正できますか? 最初の項目をリストの一番上に、2 番目の項目をその項目の下に、3 番目の項目を 2 番目の項目の下に、というように表示したいと考えています。

アイテムを追加するときに行うことは、オブジェクトのリストの先頭にアイテムを追加してから、adapter.notifyDataSetChanged() を呼び出すだけです。

空の ListFragment リストの新しい項目がリストの一番上に表示されるように指定するにはどうすればよいですか?

さまざまな TRANSCRIPT_MODE で遊んでいますが、それは役に立ちませんでした。解決策はおそらく些細なことです...しかし、私は解決策を見つけることができません。ヘルプ!

4

3 に答える 3

1

の先頭にアイテムを追加する場合は、アイテム リストの先頭にアイテムを挿入するListView必要があります。

List items = new ArrayList();

for(Object obj : objectList) { // objectlist is a list of new items
    items.add(0, obj); // INSERT AT TOP
    listAdapter.notifyDataSetChanged();
}
于 2013-09-25T23:20:37.703 に答える
1

ここで私自身の質問に答えます。

の変更

android:layout_height="wrap_content"

android:layout_height="match_parent"

フラグメントXMLタグで修正しました。私がまだ理解していないのは、wrap_content がリスト項目を最初に画面の下部に表示する理由です。ListFragment で使用されたときに、最初は空のリストで wrap_content がどのように機能するかについてのバグでしょうか?

于 2013-10-01T10:23:11.970 に答える