2014-04-30 21 views
0

我有一個Horizo​​ntalScrollView的子類,我在其中添加多個圖像。 我必須在屏幕的左右兩側顯示某種指示符,以顯示左側和右側是否有剩餘物品。當我們達到相關目標時,各自的指標也應該消失。指標,當我們到達Horizo​​ntalScrollView中的最後一個項目時消失

有人可以告訴我可用的選項嗎?

 protected void onScrollChanged(int l, int t, int oldl, int oldt) { 

      View view = (View) takeparent().getChildAt(takeparent().getChildCount()-1); //this is the last view 
      int diff = (view.getRight()-(getRight()+getScrollX()));// Calculate the scrolldiff 
      if(diff == 0){ // if diff is zero, then the rightmost end has been reached 
       right.setVisibility(View.GONE); //setting the right button invisible 
      } 


      View viewleft = (View) takeparent().getChildAt(0); taking the first View 
      int diffleft2 = (viewleft.getLeft()-(getLeft()+getScrollX()));// Calculate the scrolldiff 

      if(diffleft2 == 0){ // if diff is zero, then the bottom has been reached 
       left.setVisibility(View.GONE); 
       } 



      super.onScrollChanged(l, t, oldl, oldt); 
    } 

回答

1

這是回答你現在修改的問題:

@Override 
public boolean canScrollHorizontally(int direction) 
{ 
    final int offset = computeHorizontalScrollOffset(); 
    final int range = computeHorizontalScrollRange() - computeHorizontalScrollExtent(); 
    if(range == 0){ 
     return false; 
    } 
    return (direction < 0) ? (offset > 0) : (offset < range - 1); 
} 

protected void onScrollChanged(int l, int t, int oldl, int oldt) 
{ 
    left .setVisibility(canScrollHorizontally(-1) ? View.VISIBLE : View.GONE); 
    right.setVisibility(canScrollHorizontally(1) ? View.VISIBLE : View.GONE); 
} 

我會建議可繪製在使用視圖。

因此,我擴展了HorizontalScrollView並重寫了draw()方法來繪製它自己的Drawablecanvas的指標。其餘的只是使用setBounds來管理它們的位置,現在處於按下狀態。

代碼:https://gist.github.com/slightfoot/4c017f776663bf6dd5d8#file-indicatedhorizontalscrollview-java

+0

請問您能解釋一下您的答案。我沒有得到你。 – user3265443

+0

更新了答案 – Simon

+0

對不起,但我仍然沒有得到你,因爲它沒有提到如何顯示和消失指標達到各自的目的。該指標讓我們假設是一個按鈕 – user3265443

相關問題