2
我更新了Google支持庫以進行修改。 23.2.0
。並ViewPager
成爲顯示錯誤的頁面瀏覽量。 ViewPager
使用自定義頁面變壓器:更新支持庫後,ViewPager變得顯示不正確的頁面
private class ZoomOutPageTransformer implements ViewPager.PageTransformer {
private static final float MIN_SCALE = 0.85f;
private float mCenterOffset;
private boolean mIsFixedCenterOffset = false;
public void transformPage(View view, float position) {
final int pageWidth = view.getWidth();
final int pageHeight = view.getHeight();
if(!mIsFixedCenterOffset) {
mCenterOffset = position;
mIsFixedCenterOffset = true;
}
position -= mCenterOffset;
if (position <= 1) {
final float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
final float vertMargin = pageHeight * (1 - scaleFactor)/2;
final float horzMargin = pageWidth * (1 - scaleFactor)/2;
if (position < 0) {
view.setTranslationX(horzMargin - vertMargin/2);
} else {
view.setTranslationX(-horzMargin + vertMargin/2);
}
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
}
}
}
而且具有頁邊距:
ViewPager viewPager = (ViewPager) v.findViewById(R.id.vpDaySlider);
mAdapter = new DayPagerAdapter(getActivity(), fm, mWeekNumber);
viewPager.setAdapter(mAdapter);
viewPager.addOnPageChangeListener(this);
viewPager.setPageTransformer(false, new ZoomOutPageTransformer());
Point display = SettingsManager.getDisplaySize(getContext());
final int padding = (int)(display.x * 0.1);
viewPager.setPageMargin(padding);
現在,它看起來像如下:
我甚至不知道在哪裏的錯誤是。 ..如何解決它?我需要頁面填充父空間並僅在滾動時縮小。
警告在logcat中:
W/FragmentManager:moveToState:用於DayFragment {24ec179#2的ID = 0x7f0c00b4}不更新直列片段狀態;預期狀態3中2
ADDED 我意識到了什麼錯誤。 ZoomOutPageTransformer
修復了頁面的第一個位置。它必須是0或接近於零,但在更新位置> 1的第一個值(例如我手機上的1.1)後,下一個(秒)值是實際頁面位置(對於我的手機:0)。
因爲發生了什麼?我認爲這是一個錯誤的行爲ViewPager
。
標記你的問題解決! –
這是我的解決方案http://stackoverflow.com/a/37000323/1983018 – cuasodayleo