我正在使用android.support.v4.view.ViewPager和cwac-pager动态添加或删除片段。此ViewPager
对PageMargin
,DISAPPEARING
,CHANGE_APPEARING
的动态CHANGE_DISAPPEARING
和LayoutTransition(对于API> = 11)也有动画效果。在布局中,点击时会Button
次调用mPagerAdapter.insert(pageDescriptor, mViewPager.getCurrentItem())
。当我点击它时,mViewPager
的位置会自动增加,因此新页面会显示在当前页面的左侧。但我想让新页面显示在屏幕的中心。
我查看了ViewPager
code,我认为这部分导致了问题:
void dataSetChanged() {
...
for (int i = 0; i < mItems.size(); i++) {
final ItemInfo ii = mItems.get(i);
final int newPos = mAdapter.getItemPosition(ii.object);
...
if (ii.position != newPos) {
if (ii.position == mCurItem) {
// Our current item changed position. Follow it.
newCurrItem = newPos;
}
ii.position = newPos;
needPopulate = true;
}
...
}
...
}
理想情况是:
notifyDataSetChanged()
在未更改mViewPager.getCurrentItem()
CHANGE_APPEARING