2016-05-31 63 views
0

我有一個列表視圖,我想讓它,所以我可以刷卡的每個項目,露出了刪除按鈕:如何在Android中滑動列表視圖項?

enter image description here

我已經找到了如何識別刷卡事件,我用這代碼(listItemView類型):

listItem.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) 
     { 
      switch (event.getAction()) 
      { 
       case MotionEvent.ACTION_DOWN: 
        _xSwipe1 = event.getX(); 
        break; 

       case MotionEvent.ACTION_UP: 
        _xSwipe2 = event.getX(); 

        float deltaX = _xSwipe2 - _xSwipe1; 

        if (deltaX < 0) 
        { 
         Log.e("SWIPE", "Right to Left swipe"); 
        } 

        else if (deltaX >0) 
        { 
         Log.e("SWIPE", "Left to right swipe"); 
        } 

        break; 
      } 

      return false; 
     } 
    }); 

當我刷卡,我可以在該滑動事件被識別的日誌中看到。

但是,我不知道如何物理使列表項開始消失在左側?

任何幫助將不勝感激。

+0

只有刷卡不工作? –

+0

滑動事件正在被識別,我只是不知道下一步該怎麼做。我該如何讓列表視圖項目開始朝左側開始拍攝(如果我是從右向左輕掃)? – b85411

+0

什麼是確切的問題?你想達到什麼目的? –

回答

1

如果您知道刷卡何時發生以及用戶刷卡的次數,則可以撥打View.setTranslationX(),具體取決於用戶刷卡的次數。或者,您可以完全放棄滑動檢測邏輯並使用只有2頁的ViewPager。然後,您將覆蓋PagerAdapter中的PagerAdapter.getPageWidth(...),以便刪除按鈕只佔用有限的空間。

+0

謝謝,這絕對是我之後的那種信息。我嘗試了'setTranslationX(-200)'作爲一個試驗,並且工作。作爲跟進,我如何做到這一點,第二個按鈕出現?因爲目前所做的一切都抵消了現有按鈕的位置?再次感謝您 – b85411

+0

要使第二個按鈕「出現」,您可以將其放置在列表項的旁邊,列表項寬度與父項匹配。然後,當您將整個佈局移到左側時,刪除按鈕就會顯示出來。老實說,我認爲ViewPager解決方案會更簡單的代碼明智,除非你想要自己實現觸摸邏輯。 –

+0

感謝您的回覆。用你的ViewPager的想法,不會影響整個活動嗎?或者有可能讓ListView成爲ViewPager的列表?這樣,每當一個項目被刷過,我會看到只有該項目的刪除按鈕? – b85411