PullToRefreshView優化

PulltoRefreshview是我在CSDN上下的,據說來源是這裏,這裏簡單說明下 http://gundumw100.iteye.com/blog/1764763

這個控件支持多種控件的上啦下拉事件,非常不錯,但同時也有一些缺點,需要進行優化

優化1,添加上拉與下拉開關,當我們不需要上拉下拉的時候屏蔽事件

在類中申明變量

	private ActivityHelper mhelper;//自定義的類,主要用於分辨率轉換等操作
	private boolean canpulltoload=false,canpulltore=false;//定義變量,控制上拉下拉開關
<span style="white-space:pre">	</span>//定義set get方法
<span style="white-space:pre">	</span>public void setCanpulltoload(boolean canpulltoload) {
<span style="white-space:pre">		</span>this.canpulltoload = canpulltoload;
<span style="white-space:pre">	</span>}




<span style="white-space:pre">	</span>public void setCanpulltore(boolean canpulltore) {
<span style="white-space:pre">		</span>this.canpulltore = canpulltore;
<span style="white-space:pre">	</span>}
<span style="white-space:pre">	</span>//修改onTouchEvent中的<pre name="code" class="java"><span>	</span>//<span>ACTION_MOVE</span>方法 實現加載開關

<span style="white-space:pre">	case MotionEvent.ACTION_MOVE:
<span style="white-space:pre">			</span>int deltaY = y - mLastMotionY;
<span style="white-space:pre">			</span>if (mPullState == PULL_DOWN_STATE&&canpulltore) {//執行下拉
<span style="white-space:pre">				</span>headerPrepareToRefresh(deltaY);
<span style="white-space:pre">				</span>// setHeaderPadding(-mHeaderViewHeight);
<span style="white-space:pre">			</span>} else if (mPullState == PULL_UP_STATE&&canpulltoload) {//執行上拉
<span style="white-space:pre">				</span>footerPrepareToRefresh(deltaY);
<span style="white-space:pre">			</span>}
<span style="white-space:pre">			</span>mLastMotionY = y;
<span style="white-space:pre">			</span>break;</span>
</pre></p><p></p>優化2 ,修改事件判定,防止內容無法點擊<p>在使用該控件的過程中,發現在高分屏中,很難點擊內容的情況</p><p>解決方案</p><p>修改判定條件,</p><p>修改方法isRefreshViewScroll</p><p><pre name="code" class="html">
deltaY >0修改爲
deltaY >  mhelper.convertDpToPixel(10, context)
同理
deltaY<0修改爲
deltaY < - mhelper.convertDpToPixel(10, context)

經過測試問題解決





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章