2013-04-26 38 views
2

是否有其他方式在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); 
    } 

} 

所以,我认为是因为这个类来实现一个反冲/反弹的效果,为什么不修改这为我的Horizo​​ntalListView ..所以我创建了类似这样的类,但将其扩展到Horizo​​ntalListView然后更改而不是yx。但它没有奏效。还有一件事,overScrollBy没有在AdapterView中定义(因为Horizo​​ntalListVIew扩展到了这个)。 有没有办法实现带反弹的水平列表?还是有开源的库可以帮助? 任何帮助,不胜感激。

+0

我相信这个有一些法律问题! http://news.cnet.com/8301-13579_3-57577405-37/uspto-reaffirms-invalidation-of-apple-patent-in-samsung-suit/ – HalR 2013-04-26 05:01:56

+0

所以你说我不应该实现这一个? – elL 2013-04-26 05:45:45

+0

我只是说有一个原因,你没有在其他地方看到它。 – HalR 2013-04-26 14:07:34

回答

1

有一个简单的库rotate-layout,允许将ListView旋转到水平方向(-90度)。所有触摸事件都可以。你也必须把每个项目都改成+90度,但它也很简单。让ListView在水平方向上可以避免使用HorizontalListView