2014-09-22 84 views

回答

0

因爲有人沒有回答我的問題,我會回答。我解決了,我添加了兩個函數moveprevious和movenext到類傳送帶,它的工作非常好。

boolean movePrevious() { 
     if (mItemCount > 0 && mSelectedPosition > 0) { 
      scrollToChild(mSelectedPosition - mFirstPosition - 1); 
      return true; 
     } else { 
      return false; 
     } 
    } 

    boolean moveNext() { 
     if (mItemCount > 0 && mSelectedPosition < mItemCount - 1) { 
      scrollToChild(mSelectedPosition - mFirstPosition + 1); 
      return true; 
     } 
     else { 
      return false; 
     } 
    } 

然後我在下面的代碼中調用這些函數。

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
     switch (keyCode) { 

     case KeyEvent.KEYCODE_DPAD_LEFT: 
      ////if (movePrevious()) { 
       playSoundEffect(SoundEffectConstants.NAVIGATION_LEFT); 
       moveNext(); 

      ////} 
      return true; 

     case KeyEvent.KEYCODE_DPAD_RIGHT: 
      /////if (moveNext()) { 
       playSoundEffect(SoundEffectConstants.NAVIGATION_RIGHT); 
       movePrevious(); 
      ////} 
      return true; 

     case KeyEvent.KEYCODE_DPAD_CENTER: 
     case KeyEvent.KEYCODE_ENTER: 
      mReceivedInvokeKeyDown = true; 
      // fallthrough to default handling 
     } 

     return super.onKeyDown(keyCode, event); 
    }