2

ListAdapter をカスタマイズして、3 つの異なる画像 (アイテム) を 1 行に表示します。それは完全に機能します(その機能によると)。ただし、ListView をスムーズにスクロールすることはできません。

ImageViews で setBackgroundImage を使用しており、HashMap を使用して resourceId をキャッシュしています。だから使わなくていい

resId=getContext().getResources().getIdentifier(resName, "drawable",appContext.getPackageName());

何回も何回も。

ListView がうまくスクロールしていないため、何かが足りないと思います。また、コードが 3 つ以上の項目を連続して自動的に埋めるタブレットで試してみると、タブレットのリストビューはほとんどスクロールできません。

ここで何が間違っていますか?

アップデート:

Flags (国のフラグ) アクティビティの onCreate メソッドでプログラムによって ListView を作成します。

root=(ViewGroup)this.findViewById(R.id.root);

    listView=new ListView(this);
    listView.setLayoutParams(new LayoutParams(
        LayoutParams.MATCH_PARENT,
        LayoutParams.MATCH_PARENT));

    /*
    ArrayList<Country> dataList=new ArrayList<Country>(){{
        add(new Country("jp"));
        add(new Country("de"));
        add(new Country("it"));
    }};*/

    CountryListAdapter countryListAdapter=new CountryListAdapter(this);


    countryListAdapter.setDataSource(allCountries);


    listView.setAdapter(regionListAdapter);
    listView.setBackgroundColor(0xFF000000);
    listView.setDividerHeight(0);

    root.addView(listView);

4

3 に答える 3

9

勉強、勉強、勉強 ;-)

そして、私のヒントは、同じレイアウトの多数のアイテムに対してViewHolderパターンを使用することです(単一のTextViewなどの最も単純なものであっても)

また、このViewHolder実装例/ライブラリ

また、ListView アイテム レイアウトで画像を使用する場合は、次のようないくつかのライブラリを使用して画像を非同期にダウンロードできます。

于 2013-04-24T20:02:35.090 に答える