1

在我的應用程序中,它具有底部的選項卡和其片段中的內容。當用戶上下滾動時,我想淡入淡出底部的選項卡。如何隱藏滾動頂部或底部的tabhost

請給我一個教程鏈接,如果你有。

謝謝

+0

利用這個演示,那麼你會得到一些想法https://github.com/LarsWerkman/QuickReturnListView – 2014-11-21 12:33:56

回答

3

這是一個不是很優雅,但簡單的方法。

yourScrollableViewView哪個用戶會滾動,viewYouNeedToHideView其中包含你的標籤,REQUIRED_SWIPE是滾動距離,顯示/隱藏事件將是敏感的。

yourScrollableView.setOnTouchListener(new View.OnTouchListener() { 

    float mY; 
    float swipeDistance; 
    final float REQUIRED_SWIPE = 50; 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
    float y = event.getY(); 

    switch(event.getAction()) { 

     case MotionEvent.ACTION_DOWN : 
      swipeDistance = 0; 
      mY = y; 
      break; 

     case MotionEvent.ACTION_MOVE : 
      swipeDistance += y - mY; 
      if(Math.abs(swipeDistance) > REQUIRED_SWIPE) { 
       if(swipeDistance < 0) { 
        if(viewYouNeedToHide.getVisibility() == View.VISIBLE) { 
         TranslateAnimation animate = new TranslateAnimation(
           0,0,0,viewYouNeedToHide.getHeight()); 
         animate.setDuration(500); 
         animate.setFillAfter(false); 
         viewYouNeedToHide.startAnimation(animate); 
         viewYouNeedToHide.setVisibility(View.GONE); 
         swipeDistance = 0; 
        } 
       } else { 
        if(viewYouNeedToHide.getVisibility() != View.VISIBLE) { 
         TranslateAnimation animate = new TranslateAnimation(
           0,0,viewYouNeedToHide.getHeight(),0); 
         animate.setDuration(500); 
         animate.setFillAfter(false); 
         viewYouNeedToHide.startAnimation(animate); 
         viewYouNeedToHide.setVisibility(View.VISIBLE); 
         swipeDistance = 0; 
        } 
       } 
      } 

      mY = y; 
      break; 

    } 

    mY = y; 
    return false; 

    } 
}); 
+0

這應該被接受爲正確答案。 Thx塔拉斯。 – Jaky71 2015-04-14 10:26:52

相關問題