android 一个listview 可以加载 多个 adapter ?

每周精粹 发布于 2014/10/09 11:22
阅读 2K+
收藏 0

android 一个listview 可以加载 多个 adapter ?


加载中
0
小红书
小红书
貌似不可以把。
每周精粹
每周精粹
我也没发现可以
0
尐帥鱼
尐帥鱼
你可以不停的setAdapter  但是只有最后一次给的有用
0
PepsiZero
PepsiZero
不知道为什么这么问,listview只能设置一个adapter,但是item的type可以有多个
0
loyal
loyal
....逗比....
0
isMars
isMars
为什么 这么干?
0
杰仔很忙
为什么都认为不可以?后面的还理直气壮的说人家逗比。我自己是用过的,具体代码有兴趣的可以找我拿。
0
robertchao
robertchao
public void setAdapter(ListAdapter adapter) {
        if (mAdapter != null && mDataSetObserver != null) {
            mAdapter.unregisterDataSetObserver(mDataSetObserver);
        }

        resetList();
        mRecycler.clear();

        if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) {
            mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos, adapter);
        } else {
            mAdapter = adapter;
        }

        mOldSelectedPosition = INVALID_POSITION;
        mOldSelectedRowId = INVALID_ROW_ID;

        // AbsListView#setAdapter will update choice mode states.
        super.setAdapter(adapter);

        if (mAdapter != null) {
            mAreAllItemsSelectable = mAdapter.areAllItemsEnabled();
            mOldItemCount = mItemCount;
            mItemCount = mAdapter.getCount();
            checkFocus();

            mDataSetObserver = new AdapterDataSetObserver();
            mAdapter.registerDataSetObserver(mDataSetObserver);

            mRecycler.setViewTypeCount(mAdapter.getViewTypeCount());

            int position;
            if (mStackFromBottom) {
                position = lookForSelectablePosition(mItemCount - 1, false);
            } else {
                position = lookForSelectablePosition(0, true);
            }
            setSelectedPositionInt(position);
            setNextSelectedPositionInt(position);

            if (mItemCount == 0) {
                // Nothing selected
                checkSelectionChanged();
            }
        } else {
            mAreAllItemsSelectable = true;
            checkFocus();
            // Nothing selected
            checkSelectionChanged();
        }

        requestLayout();
    }



返回顶部
顶部