2013-04-26 1 views
2

목록 끝에 도달 한 후 바운스/리코일 효과가있는 Android에서 가로 목록보기를 구현하는 다른 방법이 있습니까? 이 번호는 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로 확장 한 다음 y 대신 x으로 변경합니다. 그러나 그것은 효과가 없었습니다. 또한, overScrollBy은 AdapterView에 정의되어 있지 않습니다 (HorizontalListVIew가 이에 이르기 때문에) 바운스가있는 가로 목록을 구현하는 방법이 있습니까? 또는 도움이 될 수있는 오픈 소스 라이브러리가 있습니까? 도움을 주시면 대단히 감사하겠습니다.

+0

나는이 문제에 몇 가지 법적 문제가 있다고 생각합니다. http://news.cnet.com/8301-13579_3-57577405-37/uspto-reaffirms-invalidation-of-apple-patent-in-samsung-suit/ – HalR

+0

그래서 이것을 구현해서는 안된다는 말입니까? – elL

+0

다른 장소에서는 볼 수없는 이유가 있습니다. – HalR

답변

1

ListView을 가로 방향 (-90도)으로 회전시킬 수있는 간단한 라이브러리 rotate-layout이 있습니다. 모든 터치 이벤트는 정상적으로 작동합니다. 또한 모든 항목을 +90도까지 돌려야하지만 간단합니다. ListView를 가로 방향으로두면 HorizontalListView을 사용하지 않아도됩니다.