午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

android - 自定義下拉刷新列表.

瀏覽:277日期:2024-08-25 13:57:03

問(wèn)題描述

這里面的代碼看不懂什么意思

public class MyListe extends ListView {

private View v;private int height;int anxiaY;int huadongY;@TargetApi(Build.VERSION_CODES.JELLY_BEAN) public MyListe(Context context, AttributeSet attrs) { super(context, attrs); v = View.inflate(context, R.layout.item2, null); v.measure(0, 0); height = v.getMeasuredHeight(); v.setPadding(0, -height, 0, 0); addHeaderView(v);}@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Overridepublic boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN:anxiaY = (int) ev.getY();break; case MotionEvent.ACTION_UP:setPadding(0, -height, 0, 0);v.invalidate();invalidate();break; case MotionEvent.ACTION_MOVE:huadongY = (int) ((ev.getY()-anxiaY)*0.3);setPadding(0, huadongY-height, 0, 0);v.invalidate();invalidate();break; } return super.onTouchEvent(ev);}

}

問(wèn)題解答

回答1:

不知道你是哪部分沒(méi)看懂還是都看不懂,這段代碼其實(shí)并沒(méi)多復(fù)雜,把它分解一下就好理解了。我分兩部分說(shuō)一下。

一是構(gòu)造器構(gòu)造器初始化向listview裝載一個(gè)headerview,困惑之處可能在于measure和setPadding,一個(gè)view加載出來(lái)若尚未可見(jiàn),它的width和height會(huì)是-1,所以需要手動(dòng)調(diào)用measure去強(qiáng)制measure一下view的空間占用情況,目的是為了拿到height為setPadding做準(zhǔn)備;到了setPadding,參數(shù)構(gòu)成是left, top, right, bottom,傳入的是top參數(shù),請(qǐng)看好是-height,在android上,view的位置并非只有屏幕上可見(jiàn)的那點(diǎn)空間,它可以抽象延伸到屏幕外更寬廣的區(qū)域,所以-height的意思是設(shè)置view的左上角的位置為屏幕外height,意思就是讓headerview初始化時(shí)不顯示在屏幕可見(jiàn)范圍內(nèi),看我畫(huà)的草圖可能好理解一點(diǎn),草圖左上角黃點(diǎn)就是構(gòu)造器初始化后的坐標(biāo)示意。android - 自定義下拉刷新列表.

二是touch事件處理構(gòu)造器添加的不可見(jiàn)headerview如何顯示?是不是就是改變headerview的paddingTop值就可以了?是的,就是那樣!那怎么時(shí)候改變,改變多少?是不是就是應(yīng)該手指在listview上滑動(dòng)多少就改變多少呢?是的,就是那樣,了解這個(gè)過(guò)程,再看touch事件處理就很好理解了。ACTION_DOWN即手指按下的動(dòng)作,anxiaY即是按下的點(diǎn)的y坐標(biāo),ACTION_MOVE即手指滑動(dòng)的動(dòng)作,記錄滑動(dòng)過(guò)程手指觸點(diǎn)y坐標(biāo)的變化,和anxiaY值做比較,就得出手指滑動(dòng)的距離,就可以做下拉動(dòng)作了,不斷的設(shè)置headerview的paddingTop值和刷新view,就可以達(dá)到headerview跟隨手指滑動(dòng)距離滑入或滑出屏幕了。ACTION_UP即手指觸點(diǎn)離開(kāi)屏幕,停止滑動(dòng),這時(shí)重新設(shè)置paddingTop值為-height,headerview就復(fù)位了,整體離開(kāi)屏幕,回到構(gòu)造器初始化時(shí)的位置,完成整個(gè)下拉過(guò)程。

回答2:

構(gòu)造里面過(guò)去高度,然后監(jiān)聽(tīng)Touch事件,更新頭部位子

相關(guān)文章:
主站蜘蛛池模板: 四虎免费观看 | 国产视频一区二区在线观看 | 亚洲天堂少妇 | 国产精品毛片va一区二区三区 | 国产理论在线观看 | 久操青青 | 884aa四虎影成人精品一区 | 一本一道波多野结衣一区二区 | 99精品国产一区二区 | 免费观看av的网站 | av在线大全 | 黄色在线视频网站 | 国产精品视频在 | 亚洲精品自拍偷拍 | 狠狠干狠狠干狠狠干 | 婷婷视频网站 | 亚洲天堂网在线观看 | 欧美日韩一区视频 | 六月伊人| 欧美整片第一页 | 国产高清第一页 | 狠狠操在线 | 日韩精品视频在线免费观看 | 丝袜综合网 | 久久性网| 91视频88av| 五月天狠狠操 | 日本国产在线观看 | 国产精品久久久久久久久果冻传媒 | 欧美久久久久久久久久久 | 神马久久久久 | 黄色大片在线免费观看 | www.一级片| 久久艹艹| 亚洲a网| 欧美在线激情视频 | 69av在线| 欧美日韩视频免费观看 | 1024国产| 日日操日日 | 国产午夜手机精彩视频 |