Java 类android.support.v4.widget.ListViewAutoScrollHelper 实例源码
项目:Rocko-Android-Demos
文件:ListViewActivity.java
private void init() {
listView = (ListView) findViewById(R.id.list_view);
String[] strs = getData(100);
List<Map<String, Object>> list = new ArrayList<>();
for (String str : strs) {
Map<String, Object> map = new HashMap<>();
map.put("text", str);
list.add(map);
}
SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.item_simple, new String[]{"text"}, new int[]{R.id.text_view});
listView.setAdapter(adapter);
AutoScrollHelper autoScrollHelper = new ListViewAutoScrollHelper(listView);
listView.setOnTouchListener(autoScrollHelper);
autoScrollHelper.setEnabled(true);
// autoScrollHelper.setActivationDelay(3000);
// autoScrollHelper.setRampDownDuration(3000);
Toast.makeText(this, "长按上或下边缘", Toast.LENGTH_SHORT).show();
}
项目:boohee_v5.6
文件:ListPopupWindow.java
public boolean onForwardedEvent(MotionEvent event, int activePointerId) {
boolean handledEvent = true;
boolean clearPressedItem = false;
int actionMasked = MotionEventCompat.getActionMasked(event);
switch (actionMasked) {
case 1:
handledEvent = false;
break;
case 2:
break;
case 3:
handledEvent = false;
break;
}
int activeIndex = event.findPointerIndex(activePointerId);
if (activeIndex < 0) {
handledEvent = false;
} else {
int x = (int) event.getX(activeIndex);
int y = (int) event.getY(activeIndex);
int position = pointToPosition(x, y);
if (position == -1) {
clearPressedItem = true;
} else {
View child = getChildAt(position - getFirstVisiblePosition());
setPressedItem(child, position, (float) x, (float) y);
handledEvent = true;
if (actionMasked == 1) {
clickPressedItem(child, position);
}
}
}
if (!handledEvent || clearPressedItem) {
clearPressedItem();
}
if (handledEvent) {
if (this.mScrollHelper == null) {
this.mScrollHelper = new ListViewAutoScrollHelper(this);
}
this.mScrollHelper.setEnabled(true);
this.mScrollHelper.onTouch(this, event);
} else if (this.mScrollHelper != null) {
this.mScrollHelper.setEnabled(false);
}
return handledEvent;
}