如何在滾動上拉隱藏viewpager選項卡(主頁,發現,活動)時像twitter一樣的滾動效果。或者像Facebook滾動一樣的效果,同時向下滾動顯示選項視圖時向上滾動隱藏選項視圖(狀態,照片,簽到)。任何示例鏈接都會幫忙。Android向上滾動隱藏視圖並向下滾動顯示視圖效果,如twitter
回答
有沒有這個快速的例子。但你可以做的是保持跟蹤你滾動的方式,並相應地顯示或隱藏視圖
例如獲取ListView的第一個可見位置跟蹤這個,如果它小於你知道你滾動之前這樣你可以顯示視圖。如果它更大,則隱藏視圖。
這是一種簡單的方法,以便您希望更精確地使用onTouchListeners和y運動的座標。
http://developer.android.com/reference/android/widget/ListView.html
簡單的解決方案:
public abstract class OnScrollObserver implements AbsListView.OnScrollListener {
public abstract void onScrollUp();
public abstract void onScrollDown();
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
int last = 0;
boolean control = true;
@Override
public void onScroll(AbsListView view, int current, int visibles, int total) {
if (current < last && !control) {
onScrollUp();
control = true;
} else if (current > last && control) {
onScrollDown();
control = false;
}
last = current;
}
用法:
listView.setOnScrollListener(new OnScrollObserver() {
@Override
public void onScrollUp() {
}
@Override
public void onScrollDown() {
}
});
這可以應用於線性佈局嗎? – Pihu
Nop,在ScrollView中使用LinearLayout。不要忘記爲ScrollView設置OnScrollObserver。 –
這是我自己的實現: 通知:
- 查看被隱藏應該是固定的高度
- 我們並不會被Visiblity.GONE
- 隱藏視圖我們將最終高度設置爲0px
下面是代碼:
//Your view which you would like to animate
final RelativeLayout yourViewToHide = (yourViewToHideativeLayout) findViewById(R.id.topWrapper);
//The initial height of that view
final int initialViewHeight = yourViewToHide.getLayoutParams().height;
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
//Try catch block for NullPointerExceptions
try{
//Here is a simple delay. If user scrolls ListView from the top of the screen to the bottom then continue
if(firstVisibleItem % visibleItemCount == 0) {
//Here we initialize the animator, doesn't matter what values You will type in
ValueAnimator animator = ValueAnimator.ofInt(0, 1);
//if Scrolling up
if (fastScrollSB.getProgress() > view.getFirstVisiblePosition()){
//Getting actual yourViewToHide params
ViewGroup.LayoutParams params = yourViewToHide.getLayoutParams();
if (!animator.isRunning()) {
//Setting animation from actual value to the initial yourViewToHide height)
animator.setIntValues(params.height, initialViewHeight);
//Animation duration
animator.setDuration(500);
//In this listener we update the view
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
ViewGroup.LayoutParams params = yourViewToHide.getLayoutParams();
params.height = (int) animation.getAnimatedValue();
yourViewToHide.setLayoutParams(params);
}
});
//Starting the animation
animator.start();
}
System.out.println("Scrolling up!");
//If not scrolling
} else if (fastScrollSB.getProgress() == view.getFirstVisiblePosition()) {
System.out.println("Not Scrolling!");
//If scrolling down
} else if (fastScrollSB.getProgress() < view.getFirstVisiblePosition()){
//Getting actual yourViewToHide params
ViewGroup.LayoutParams params = yourViewToHide.getLayoutParams();
if (!animator.isRunning()) {
//Setting animation from actual value to the target value (here 0, because we're hiding the view)
animator.setIntValues(params.height, 0);
//Animation duration
animator.setDuration(500);
//In this listener we update the view
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
ViewGroup.LayoutParams params = yourViewToHide.getLayoutParams();
params.height = (int) animation.getAnimatedValue();
yourViewToHide.setLayoutParams(params);
}
});
//Starting the animation
animator.start();
}
System.out.println("Scrolling down!");
}
}
}catch (Exception e){
e.printStackTrace();
}
}
});`
希望它適合你的需求:)
你還沒有添加'fastScrollSB' :) – xAqweRx
- 1. 向下滾動時隱藏卡片視圖並滾動時顯示
- 2. 顯示滾動向下滾動和隱藏向下滾動時
- 3. 角度隱藏標題向下滾動,顯示向上滾動
- 4. Android的ListView同時向下滾動和隱藏向上滾動時隱藏頂視圖?
- 5. jQuery Mobile:將標題隱藏向下滾動並向上滾動顯示
- 6. 摺疊工具欄向上滾動時隱藏並向下滾動時顯示
- 7. Android:在列表視圖中向下滾動時隱藏relativelayout
- 8. Nativescript:如何隱藏滾動視圖上的滾動指示
- 9. 向下滾動時隱藏標題並向下顯示
- 10. 如何在向上滾動和向下滾動時顯示/隱藏UITableView標題?
- 11. 如何在隱藏鍵盤時向下滾動視圖
- 12. 製作收藏視圖向左滾動和向右滾動
- 13. 安卓:隱藏/顯示頁腳/頭作爲滾動滾動視圖下/上
- 14. 隱藏並顯示帶動畫的滾動視圖
- 15. 顯示Bootbox模式向下滾動隱藏滾動條
- 16. 隱藏標題滾動向下/顯示在滾動
- 17. Android:隱藏視圖,同時滾動ViewPager
- 18. 滾動視圖內滾動視圖android
- 19. iOS:UITableview標題隱藏在向上滾動的視圖後面
- 20. Android UI - Android橫向滾動視圖
- 21. 向視圖添加滾動視圖
- 22. 隱藏導航向下滾動並僅在移動時向上滾動
- 23. android-如何把滾動視圖下滾動視圖
- 24. 如何在顯示softinputkeyboard時向上滾動滾動視圖的子項
- 25. 如何向下滾動ListView時隱藏標籤,然後再次顯示它們,如果用戶向上滾動?
- 26. 創建活動時無法向下滾動滾動視圖/ TextView
- 27. 滾動視圖上的Parralax效果
- 28. webView,視口,如何隱藏滾動條顯示何時滾動?
- 29. Teehan&Lax隱藏標題與JavaScript - 隱藏向下滾動,顯示在向上滾動
- 30. Android:滾動視圖中的視圖被鍵盤隱藏
感謝您的回答。我會試圖弄明白,如果你找到好榜樣,請讓我知道。你有什麼想法他們如何做選擇視圖動畫?當向下滾動時,選項視圖也會慢慢向下滾動 – NaiveBz
如果您需要更精確地使用onTouchListeners,則可以在顯示或如上所述時執行正常翻譯動畫。 – QVDev
這可能會在這裏回答:http://stackoverflow.com/questions/15464649/android-listview-floating-first-row,你可以從https://code.google.com/p查看示例應用程序/ romannurik-code/source/browse/misc/scrolltricks/ – Robert