第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何創(chuàng)建一個(gè)封閉(循環(huán))ListView?

如何創(chuàng)建一個(gè)封閉(循環(huán))ListView?

江戶(hù)川亂折騰 2019-11-20 17:13:51
如何創(chuàng)建一個(gè)封閉(循環(huán))ListView?我想創(chuàng)建一個(gè)自定義的ListView(或類(lèi)似的),其行為類(lèi)似于封閉(循環(huán))的:向下滾動(dòng) - 在到達(dá)最后一個(gè)項(xiàng)目后第一個(gè)開(kāi)始(..,n-1,n,1,2,...)向上滾動(dòng) - 在第一個(gè)項(xiàng)目到達(dá)后,最后一個(gè)開(kāi)始(...,2,1,1,n,n-1,..)這在概念上聽(tīng)起來(lái)很簡(jiǎn)單,但顯然,沒(méi)有直接的方法來(lái)做到這一點(diǎn)。誰(shuí)能指出我正確的解決方案?謝謝 !我已經(jīng)收到一個(gè)答案(來(lái)自Streets Of Boston的Android開(kāi)發(fā)者谷歌團(tuán)體),但聽(tīng)起來(lái)有些丑陋:) -我這樣做是通過(guò)創(chuàng)建自己的列表適配器(從BaseAdapter子類(lèi))。我編寫(xiě)了自己的列表適配器,其getCount()方法返回一個(gè)HUUUUGE編號(hào)。如果選擇項(xiàng)'x',則此項(xiàng)對(duì)應(yīng)于適配器位置='adapter.getCount()/ 2 + x'對(duì)于我的適配器的方法getItem(int position),我查看我的數(shù)組備份適配器并獲取索引上的項(xiàng)目:(position-getCount()/ 2)%myDataItems.length你需要做一些更“特殊”的東西才能使它完全正常工作,但你明白了。原則上,它仍然可以到達(dá)列表的結(jié)尾或開(kāi)頭,但如果你將getCount()設(shè)置為大約一百萬(wàn)左右,這很難做到:-)
查看完整描述

3 回答

?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

你提到的解決方案是我告訴其他開(kāi)發(fā)人員過(guò)去使用的解決方案。在getCount()中,只需返回Integer.MAX_VALUE,它將為您提供大約20億個(gè)項(xiàng)目,這應(yīng)該足夠了。

查看完整回答
反對(duì) 回復(fù) 2019-11-21
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

基于上面的答案,我有,或者我認(rèn)為我做得對(duì)。希望這會(huì)幫助你。

private static class RecipeListAdapter extends BaseAdapter {
    private static LayoutInflater   mInflater;
    private Integer[]               mCouponImages;
    private static ImageView        viewHolder;
    public RecipeListAdapter(Context c, Integer[] coupomImages) {
        RecipeListAdapter.mInflater = LayoutInflater.from(c);
        this.mCouponImages = coupomImages;
    }
    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public Object getItem(int position) {
       // you can do your own tricks here. to let it display the right item in your array.
        return position % mCouponImages.length;
    }

    @Override
    public long getItemId(int position) {
        return position;
        // return position % mCouponImages.length;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.coupon_list_item, null);
            viewHolder = (ImageView) convertView.findViewById(R.id.item_coupon);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ImageView) convertView.getTag();
        }

        viewHolder.setImageResource(this.mCouponImages[position %     mCouponImages.length]);
        return convertView;
    }}

如果你想向下滾動(dòng)列表,你想這樣做。通常我們可以向上滾動(dòng)并列出然后向下滾動(dòng)。

//查看我們想要滾動(dòng)的項(xiàng)目數(shù)量。在這種情況下,Integer.MAX_VALUE

int listViewLength = adapter.getCount();// see how many items a screen can dispaly, I use variable "span"
    final int span = recipeListView.getLastVisiblePosition() - recipeListView.getFirstVisiblePosition();

//查看我們有多少頁(yè)面

int howManySpans = listViewLength / span;

//在啟動(dòng)列表視圖時(shí)查看您想要的位置。你不必做“-3”的事情。這是我的應(yīng)用程序正常工作。

recipeListView.setSelection((span * (howManySpans / 2)) - 3);



查看完整回答
反對(duì) 回復(fù) 2019-11-21
  • 3 回答
  • 0 關(guān)注
  • 374 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)