日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 芯聞號 > 充電吧
[導讀]Android默認的ListView在滾動到頂端或底端,沒有很好的提示,下面通過源碼來實現(xiàn)彈性效果。ListView中有一個控制滑動到邊緣的處理方法:?protected?boolean?overSc

Android默認的ListView在滾動到頂端或底端,沒有很好的提示,下面通過源碼來實現(xiàn)彈性效果。

ListView中有一個控制滑動到邊緣的處理方法:

?protected?boolean?overScrollBy(int?deltaX,?int?deltaY,
???????????????????????????????????int?scrollX,?int?scrollY,
???????????????????????????????????int?scrollRangeX,?int?scrollRangeY,
???????????????????????????????????int?maxOverScrollX,?int?maxOverScrollY,
???????????????????????????????????boolean?isTouchEvent)


?

其中參數(shù)maxOverScrollX---Numbers of piexls to overscroll by in either direction along the Y axis.默認為0,修改這個數(shù)值就可以實現(xiàn)滑動到頂端的彈性效果。

?

//為滿足多分辨率的需求,通過屏幕的density來計算maxOverScrollY的具體
????????DisplayMetrics?metrics?=?mContext.getResources().getDisplayMetrics();
????????float?density?=?metrics.density;
????????mMaxOverDistance?=?(int)?(density?*?mMaxOverDistance);


完整的工程

FlexibleListView.java

package?sunny.example.ahfourflexiblelistviewtest;

import?android.annotation.SuppressLint;
import?android.content.Context;
import?android.util.AttributeSet;
import?android.util.DisplayMetrics;
import?android.widget.ListView;

@SuppressLint("NewApi")
public?class?FlexibleListView?extends?ListView?{

????private?static?int?mMaxOverDistance?=?50;//將滑動距離改為50,默認為0,無彈性效果
????private?Context?mContext;

????public?FlexibleListView(Context?context,?AttributeSet?attrs,
????????????????????????????int?defStyleAttr)?{
????????super(context,?attrs,?defStyleAttr);
????????this.mContext?=?context;
????????initView();
????}

????public?FlexibleListView(Context?context,?AttributeSet?attrs)?{
????????super(context,?attrs);
????????this.mContext?=?context;
????????initView();
????}

????public?FlexibleListView(Context?context)?{
????????super(context);
????????this.mContext?=?context;
????????initView();
????}

????private?void?initView()?{
????	//為滿足多分辨率的需求,通過屏幕的density來計算maxOverScrollY的具體
????????DisplayMetrics?metrics?=?mContext.getResources().getDisplayMetrics();
????????float?density?=?metrics.density;
????????mMaxOverDistance?=?(int)?(density?*?mMaxOverDistance);
????}

????@Override
????protected?boolean?overScrollBy(int?deltaX,?int?deltaY,
???????????????????????????????????int?scrollX,?int?scrollY,
???????????????????????????????????int?scrollRangeX,?int?scrollRangeY,
???????????????????????????????????int?maxOverScrollX,?int?maxOverScrollY,
???????????????????????????????????boolean?isTouchEvent)?{
????????return?super.overScrollBy(deltaX,?deltaY,
????????????????scrollX,?scrollY,
????????????????scrollRangeX,?scrollRangeY,
????????????????maxOverScrollX,?mMaxOverDistance,
????????????????isTouchEvent);
????}
}

?

FlexibleListViewTest.java

?

package?sunny.example.ahfourflexiblelistviewtest;
//具有彈性的ListView
import?android.app.Activity;
import?android.os.Bundle;
import?android.widget.ArrayAdapter;

public?class?FlexibleListViewTest?extends?Activity?{

????private?FlexibleListView?mFlexibleListView;
????private?String[]?data?=?new?String[30];

????@Override
????protected?void?onCreate(Bundle?savedInstanceState)?{
????????super.onCreate(savedInstanceState);
????????setContentView(R.layout.flexible);
????????for?(int?i?=?0;?i?<?30;?i++)?{
????????????data[i]?=?""?+?i;
????????}
????????mFlexibleListView?=?(FlexibleListView)?findViewById(R.id.flexible_listview);
????????mFlexibleListView.setAdapter(new?ArrayAdapter(this,
????????????????android.R.layout.simple_list_item_1,
????????????????data));
????}
}

?

flexible.xml

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉