0

我想自定义 ViewPager 的动画。所以我实现ViewPager.PageTransformer并调用 setPageTransformer(). 它与FragmentStatePagerAdapteror配合得很好FragmentPagerAdapter。但不是PagerAdapter

当我打电话时setPageTransformer()(即使PageTransformer什么都不做),页面PagerAdapter显示一次并自动关闭(不再显示),除了最后一个。当我删除setPageTransformer()时,它可以正常工作。

谁能知道为什么?提前致谢。
您可以使用此链接中的示例代码。我使用PagerAdapter而不是FragmentPagerAdapter.

编辑这是我更改的代码

4

1 回答 1

1

我认为它不起作用,因为您发布的示例代码使用片段。

在您的 API 中PagerAdapter可以阅读:

基类提供适配器以填充ViewPager. 您很可能希望使用更具体的实现,例如FragmentPagerAdapteror FragmentStatePagerAdapter

实现 PagerAdapter 时,必须至少重写以下方法:

instantiateItem(ViewGroup, int)
destroyItem(ViewGroup, int, Object)
getCount()
isViewFromObject(View, Object)

因此,您不能仅以示例为例并更改FragmentPagerAdapterPagerAdpapter.

更新 2014-01-14

我将您的代码导入到现有项目中,并在其中显示ViewPager.

我想我发现了错误!您的适配器工作正常(也是PageTransformater)。请将您的方法更改instantiateItem为此PagerAdper并告诉我这是否适合您:

@Override
public Object instantiateItem(ViewGroup container, int position) {
    // TODO Auto-generated method stub
    View view = LayoutInflater.from(mContext).inflate(R.layout.program_item, null);
    /** 
        // This line cause the strange behaviour
        view.setLayoutParams(mParams);
    **/
    ((ImageView) view.findViewById(R.id.img)).setImageResource(R.drawable.default_program);
    container.addView(view);
    return view;
}
于 2014-01-13T11:46:21.357 回答