2013-04-26 64 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