3

このおそらく単純な問題/バグの解決策を見つけることができないようですので、ここにあります:

タイプ (android.R.layout.simple_list_item_checked) の ListFragment で、クリックすると他のフラグメントが読み込まれ、他の作業が行われます。

問題は、表示されていない ListFragment 内の文字列が、スクロールして表示に戻ると、明確な理由もなく次の行に「ラップ」されることです。以下の写真でよりよく説明されています:


写真1:通常状態

1-ノーマル


写真 2: リストを下にスクロール - すべて正常に動作しています (ランボルギーニは見えません)。 2-正常終了


写真 3 : しかし、ポルシェを選択して下にスクロールすると、「ムスタング」のテキストが壊れてしまいました

4 エラー 1


写真 4 : ランダムにクリックして上にスクロールすると、"Lamborghini" も同様です。

5 エラー 2


リストビューの作成に使用したコードは非常に簡単です。

 @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
        getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        getListView().setHorizontalFadingEdgeEnabled(true);
        getListView().setVerticalFadingEdgeEnabled(true);
        getListView().setFastScrollEnabled(true);
        carsTitleAdapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_checked, CarModels.Models);
        setListAdapter(carsTitleAdapter);

CarModels.class の文字列

   public static final String[] Models = {
    "Porsche",
    "Lamborghini",
    "Ferrari",
    "McLaren",
    "Aston Martin",
    "Jaguar",
    "Audi",
    "Mustang",        
};

リストが更新されることを期待して、onListItemClick() の最後に notifyDataSetChanged() を呼び出してみましたが、問題は解決しません。これに対する可能な解決策はありますか?ありがとう!

PS: サポート ライブラリ v4 を使用して、Galaxy Tab 10.1、Honeycomb 3.1 で実行しています。このビルドのバグである可能性がありますか?

4

1 に答える 1

2

onCreateViewをオーバーライドし、メソッドから返されるビューにandroid:id = "@ android:id/list"のListViewを含むレイアウトファイルを渡すことで問題を解決しました。

        @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        return inflater.inflate(R.layout.list_fragment_layout, null);
    }

list_fragment_layout.xml:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</LinearLayout>
于 2012-03-21T07:54:11.953 に答える