下面列出了android.widget.AbsListView#setOnScrollListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
void attach(AbsListView listView) {
//获得原始监听器,用作转发
Field[] declaredFields = AbsListView.class.getDeclaredFields();
if (declaredFields != null) {
for (Field field : declaredFields) {
if (AbsListView.OnScrollListener.class.equals(field.getType())) {
try {
field.setAccessible(true);
Object listener = field.get(listView);
if (listener != null && !listView.equals(listener)) {
mScrollListener = (AbsListView.OnScrollListener) listener;
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
listView.setOnScrollListener(this);
}
public void attachToListView(@NonNull AbsListView listView, ScrollDirectionListener listener) {
AbsListViewScrollDetectorImpl scrollDetector = new AbsListViewScrollDetectorImpl();
scrollDetector.setListener(listener);
scrollDetector.setListView(listView);
scrollDetector.setScrollThreshold(mScrollThreshold);
listView.setOnScrollListener(scrollDetector);
}
public void attachToListView(@NonNull AbsListView listView, ScrollDirectionListener listener) {
AbsListViewScrollDetectorImpl scrollDetector = new AbsListViewScrollDetectorImpl();
scrollDetector.setListener(listener);
scrollDetector.setListView(listView);
scrollDetector.setScrollThreshold(mScrollThreshold);
listView.setOnScrollListener(scrollDetector);
}
public void attachToListView(@NonNull AbsListView listView, ScrollDirectionListener listener) {
AbsListViewScrollDetectorImpl scrollDetector = new AbsListViewScrollDetectorImpl();
scrollDetector.setListener(listener);
scrollDetector.setListView(listView);
scrollDetector.setScrollThreshold(mScrollThreshold);
listView.setOnScrollListener(scrollDetector);
}
@Override
public void setAbsListView(final AbsListView listView) {
super.setAbsListView(listView);
mContextualUndoListViewTouchListener = new ContextualUndoListViewTouchListener(listView, this);
mContextualUndoListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mContextualUndoListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mContextualUndoListViewTouchListener);
listView.setOnScrollListener(mContextualUndoListViewTouchListener.makeScrollListener());
listView.setOnHierarchyChangeListener(new HierarchyChangeListener());
}
public ScrollTriggeredAnimator(AbsListView absListView, View animationTarget) {
super();
mAnimationTarget = animationTarget;
int scrollBarPanelFadeDuration = 250; // ViewConfiguration.getScrollBarFadeDuration();
mInDuration = scrollBarPanelFadeDuration;
mOutDuration = scrollBarPanelFadeDuration * 4;
absListView.setOnScrollListener(setupListener());
}
public void attachToListView(@NonNull AbsListView listView,
ScrollDirectionListener scrollDirectionListener,
AbsListView.OnScrollListener onScrollListener) {
AbsListViewScrollDetectorImpl scrollDetector = new AbsListViewScrollDetectorImpl();
scrollDetector.setScrollDirectionListener(scrollDirectionListener);
scrollDetector.setOnScrollListener(onScrollListener);
scrollDetector.setListView(listView);
scrollDetector.setScrollThreshold(DensityUtil.dip2px(MainApp.CONTEXT, 4));
listView.setOnScrollListener(scrollDetector);
}
public void attachToListView(@NonNull AbsListView listView,
ScrollDirectionListener scrollDirectionListener,
AbsListView.OnScrollListener onScrollListener) {
AbsListViewScrollDetectorImpl scrollDetector = new AbsListViewScrollDetectorImpl();
scrollDetector.setScrollDirectionListener(scrollDirectionListener);
scrollDetector.setOnScrollListener(onScrollListener);
scrollDetector.setListView(listView);
scrollDetector.setScrollThreshold(mScrollThreshold);
listView.setOnScrollListener(scrollDetector);
}
public void listenTo(AbsListView listView) {
ZogUtils.printLog(FloatingView.class, "listenTo listView: " + listView);
if (null != listView) {
listView.setOnScrollListener(new DirectionScrollListener(this));
}
}
public BaseCommonAdapter(AbsListView listView, Collection<T> data) {
if(data != null){
dataList = data;
}
else{
dataList = new ArrayList<T>(0);
}
if(listView != null){
mContext = listView.getContext();
listView.setOnScrollListener(this);
}
}
public AbsListViewHelper(final AbsListView absListView, final Bundle savedState) {
this.absListView = absListView;
this.savedState = savedState;
absListView.setClipToPadding(false);
absListView.setOnScrollListener(scrollListener);
if (savedState != null) {
paddingTop = savedState.getInt("ABS_LIST_VIEW_HELPER_PADDING_TOP");
paddingBottom = savedState.getInt("ABS_LIST_VIEW_HELPER_PADDING_BOTTOM");
absListView.setPadding(
absListView.getPaddingLeft(), paddingTop,
absListView.getPaddingRight(), paddingBottom);
}
}
/**
* Makes a new request to the server with the given query.
*/
public void search() {
if (getActivity() != null) {
listView = (AbsListView) getActivity().findViewById(R.id.movieslist);
searchList = new ArrayList<>();
searchAdapter = new SearchAdapter(getActivity(), R.layout.row, searchList);
listView.setAdapter(searchAdapter);
endlessScrollListener = new EndlessScrollListener();
listView.setOnScrollListener(endlessScrollListener);
final JSONAsyncTask request = new JSONAsyncTask();
new Thread(new Runnable() {
public void run() {
try {
request.execute(MovieDB.url + "search/multi?query=" + getQuery() + "?&api_key=" + MovieDB.key).get(10000, TimeUnit.MILLISECONDS);
} catch (TimeoutException | ExecutionException | InterruptedException e) {
request.cancel(true);
// we abort the http request, else it will cause problems and slow connection later
if (conn != null)
conn.disconnect();
toastLoadingMore.cancel();
if (getActivity() != null) {
getActivity().runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getActivity(), getResources().getString(R.string.timeout), Toast.LENGTH_SHORT).show();
}
});
}
}
}
}).start();
}
}
@Override
public void setAbsListView(AbsListView listView) {
super.setAbsListView(listView);
mContextualUndoListViewTouchListener = new ContextualUndoListViewTouchListener(listView, this);
mContextualUndoListViewTouchListener.setIsParentHorizontalScrollContainer(isParentHorizontalScrollContainer());
mContextualUndoListViewTouchListener.setTouchChild(getTouchChild());
listView.setOnTouchListener(mContextualUndoListViewTouchListener);
listView.setOnScrollListener(mContextualUndoListViewTouchListener.makeScrollListener());
listView.setRecyclerListener(new RecycleViewListener());
}
public AbsListViewQuickReturnAttacher(AbsListView listView) {
this.absListView = listView;
listView.setOnScrollListener(onScrollListener);
listView.setOnItemClickListener(this);
listView.setOnItemLongClickListener(this);
}
public void listenTo(AbsListView listView) {
if (null != listView) {
listView.setOnScrollListener(new DirectionScrollListener(this));
}
}
public void listenTo(AbsListView listView) {
if (null != listView) {
listView.setOnScrollListener(new DirectionScrollListener(this));
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent() != null)
type = getIntent().getIntExtra(LIST_TYPE_INT, 0);
switch (type) {
case type_grid_view:
setContentView(R.layout.activity_grid_demo);
VlistViewHolder.type = R.layout.vlist_view_holder2;
break;
default:
case type_list_view:
setContentView(R.layout.activity_list_demo);
VlistViewHolder.type = R.layout.vlist_view_holder;
}
adapter = new XAdapter2<Vlist>(this, null, VlistViewHolder.class);
adapter.setClickItemListener(this);// 设置item的点击事件;
adapter.setLongClickItemListener(this);// 设置item的长按事件;
adapter.setOnDataChang(new IXDataListener() {
TextView textView = new TextView(getBaseContext());
{
textView.setGravity(Gravity.CENTER);
textView.setText("没有数据");
ViewGroup v = (ViewGroup) findViewById(getLayoutId());
v.addView(textView, 0);
}
@Override
public void onDataEmpty() {
textView.setVisibility(View.VISIBLE);
}
@Override
public void onDataChange() {
if (textView.getVisibility() == View.VISIBLE)
textView.setVisibility(View.GONE);
}
});
listView = (AbsListView) findViewById(R.id.bton_listview);
listView.setAdapter(adapter);
listView.setOnScrollListener(adapter.getOnScrollListener(null));
swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swrefresh);
swipeRefreshLayout.setOnRefreshListener(this);
onRefresh();
}
public void setOnScrollListenerToListView(AbsListView view) {
if (view != null) {
view.setOnScrollListener(mOnScrollListener);
}
}
/**
* Set associated list view, then this layout will only be able to drag down when the list
* view is scrolled to top.
*
* @param listView
*/
public void setAssociatedListView(AbsListView listView) {
listView.setOnScrollListener(associatedListViewListener);
updateListViewScrollState(listView);
}
/**
* Set associated list view, then this layout will only be able to drag down when the list
* view is scrolled to top.
*
* @param listView
*/
public void setAssociatedListView(AbsListView listView) {
listView.setOnScrollListener(associatedListViewListener);
updateListViewScrollState(listView);
}