最近做项目,用到水平ListView,对于此,网上已经有很多人写过了,比较有名的就是HorizontalListView.java。但是如果要实现箭头的提示(哪边可滑动,即有箭头提示往哪边可滑动)的功能,则无法实现。而且在网上也没有找到相关的功能,于是,菜鸟尝试自己动手写一个,效果如图,还请大神批评指正。
主要是在HorizontalListView.java中添加一个接口,并实现其调用。
接口如下:
public void setOnHLVStateListener(OnHLVStateListener listener) {
hlvStateListener = listener;
}
public interface OnHLVStateListener {
void onScrollMostLeft();
void onScrollMiddle();
void onScrollMostRight();
}
@Override
public void setOnItemSelectedListener(
OnItemSelectedListener listener) {
mOnItemSelected = listener;
}
一下是在调用场景,只要在原有的
onLayout
方法中进行修改即可。
@Override protected synchronized void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); if (mAdapter == null) { return; } if (mDataChanged) { int oldCurrentX = mCurrentX; initView(); removeAllViewsInLayout(); mNextX = oldCurrentX; mDataChanged = false; } if (mScroller.computeScrollOffset()) { int scrollx = mScroller.getCurrX(); mNextX = scrollx; } if (