还有其他方法可以在Android中实现水平ListView,并在到达列表末尾后具有弹跳/反冲效果吗? 我用了这个HorizontalListView。 然后,因为我也在我的ListView(垂直)中实现弹跳效果..我使用了这个:
public class BounceListView extends ListView
{
private static final int MAX_Y_OVERSCROLL_DISTANCE = 100;
private Context mContext;
private int mMaxYOverscrollDistance;
public BounceListView(Context context)
{
super(context);
mContext = context;
initBounceListView();
}
public BounceListView(Context context, AttributeSet attrs)
{
super(context, attrs);
mContext = context;
initBounceListView();
}
public BounceListView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
mContext = context;
initBounceListView();
}
private void initBounceListView()
{
//get the density of the screen and do some maths with it on the max overscroll distance
//variable so that you get similar behaviors no matter what the screen size
final DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
final float density = metrics.density;
mMaxYOverscrollDistance = (int) (density * MAX_Y_OVERSCROLL_DISTANCE);
}
@Override
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)
{
//This is where the magic happens, we have replaced the incoming maxOverScrollY with our own custom variable mMaxYOverscrollDistance;
return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, mMaxYOverscrollDistance, isTouchEvent);
}
}
所以,我认为是因为这个类用于实现反冲/反弹效果,为什么不为我的HorizontalListView修改这个...所以我创建了一个类似于此的类但是将它扩展为HorizontalListView然后更改而不是{{ 1}}到y
。但它没有用。还有一件事,x
未在AdapterView中定义(因为HorizontalListVIew扩展到此。)
有没有办法实现反弹水平列表?或者是否有可能有帮助的开源库?
非常感谢任何帮助。
答案 0 :(得分:1)
有一个简单的库rotate-layout,允许将ListView旋转到水平方向(-90度)。所有触摸事件都可以。此外,你必须将每个项目转为+90度,但它也很简单。将ListView置于水平方向后,您可以避免使用HorizontalListView。