0
如果超過50%的查看B的追隨者是可見的,則發佈ViewPager時的 將動畫爲View B
,而不是回到View A
。如何設置點後,ViewPager刷到另一個視圖?
我該如何改變從50%切換到x%的這一點?
如果超過50%的查看B的追隨者是可見的,則發佈ViewPager時的 將動畫爲View B
,而不是回到View A
。如何設置點後,ViewPager刷到另一個視圖?
我該如何改變從50%切換到x%的這一點?
您可以通過重寫onScrollChanged()功能做到這一點,這裏有一個例子:
@Override
public void onScrollChanged(ViewPager vp, int x, int y, int oldx, int oldy) {
// We take the last son in the ViewPager
View view = (View) vp.getChildAt(vp.getChildCount() - 1);
if (diff < view.getBottom()/2) {
// do the animation
}
}
讓我知道是否奏效與否(爲了讓我知道我是否應該從這裏取出應答)。
感謝
你可以建立自己的定製ViewPager,並覆蓋有自己的浮點值的正確方法。是這樣的:
public CustomViewpager extends ViewPager {
@Override
private int determineTargetPage(int currentPage, float pageOffset, int velocity, int deltaX) {
int targetPage;
if (Math.abs(deltaX) > mFlingDistance && Math.abs(velocity) > mMinimumVelocity) {
targetPage = velocity > 0 ? currentPage : currentPage + 1;
} else {
//change your values here for whatever you need for your purposes
final float truncator = currentPage >= mCurItem ? 0.4f : 0.6f;
targetPage = (int) (currentPage + pageOffset + truncator);
}
if (mItems.size() > 0) {
final ItemInfo firstItem = mItems.get(0);
final ItemInfo lastItem = mItems.get(mItems.size() - 1);
// Only let the user target pages we have items for
targetPage = Math.max(firstItem.position, Math.min(targetPage, lastItem.position));
}
return targetPage;
}
}
看看ViewPager,PageAdapter等 – Tobrun
的源代碼,這不是50%:),這是40%,硬編碼由谷歌。 參考:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.2.2_r1/android/support/v4/view/ViewPager.java#ViewPager.determineTargetPage %28int%2Cfloat%2Cint%2Cint%29 at line: else { final float truncator = currentPage> = mCurItem? 0.4f:0.6f; targetPage =(int)(currentPage + pageOffset + truncator); } – hieuxit