ページに ListViews が含まれている ViewPager があります。すべてが正常に動作し、viewPAger と ListViews が期待どおりに動作します。ページからページへのスワイプが可能で、リストビューは必要に応じて垂直方向にスクロールします。
ここで、PageTransformer を追加してページングをスムーズにし、Google ドキュメントで提供されているZoomOutPageTransformerを使用したいと考えました。
ビュー間をスワイプするときに素晴らしいアニメーションが表示されるようになりましたが、リストはスクロールできなくなりました。
コードは次のとおりです。
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
LayoutInflater inflater = LayoutInflater.from(getActivity());
viewPager = (ViewPager) view.findViewById(R.id.bookMenuPager);
viewPager.setPageTransformer(false, new ZoomOutPageTransformer());
pagerAdapter = new MenuPagerAdapter();
viewPager.setAdapter(pagerAdapter);
}
class MenuPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return 3; //change this as needed
}
@Override
public boolean isViewFromObject(View view, Object o) {
return view.equals( o );
}
@Override
public Object instantiateItem(ViewGroup collection, int position) {
LayoutInflater inflater = (LayoutInflater) collection.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(position == 0){
if(!rootMenuAdded){
viewPager.addView(rootMenucont, 0);
rootMenuAdded = true;
}
return rootMenucont;
}else if(position == 1){
if(!level1MenuAdded){
viewPager.addView(level1MenuCont, 0);
level1MenuAdded = true;
}
return level1MenuCont;
}else if(position == 2){
if(!level2MenuAdded){
viewPager.addView(level2MenuCont, 0);
level2MenuAdded = true;
}
return level2MenuCont;
}
//we got a problem houston
return null;
}
}
およびページのレイアウト:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/level1MenuCont"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
<ListView
android:id="@+id/level1Menu"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#f02bb6"
>
</ListView>
</RelativeLayout>
リストを期待どおりにスクロールするにはどうすればよいですか? ListView で PageTransformer が壊れてスクロールできなくなるのは何ですか? これは既知のバグですか?
助けてくれてありがとう:)