Java 如何在VIewPager中使用pageTransformer转换一个或多个片段
我使用Java 如何在VIewPager中使用pageTransformer转换一个或多个片段,java,android,android-fragments,android-viewpager,android-pagetransformer,Java,Android,Android Fragments,Android Viewpager,Android Pagetransformer,我使用ViewPager和Fragments创建了一个android应用程序。然后我想使用动画在彼此之间变换一些片段。我选择 PageTransformer用于此目的。我将PageTransformer与ViewPager一起使用 此mypageTransformer代码带有MainActivity类 public class MainActivity extends FragmentActivity { private ViewPager viewPager; private
ViewPager
和Fragments
创建了一个android应用程序。然后我想使用动画在彼此之间变换一些片段。我选择
PageTransformer
用于此目的。我将PageTransformer
与ViewPager
一起使用
此mypageTransformer
代码带有MainActivity类
public class MainActivity extends FragmentActivity {
private ViewPager viewPager;
private int counterNumber=-1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(ViewPager)findViewById(R.id.viewPager);
viewPager.setAdapter(new MyPagerAdapter2(getSupportFragmentManager()));
viewPager.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (viewPager.getCurrentItem() == 0) {
counterNumber=0;
return true;
}
if (viewPager.getCurrentItem() == 1) {
counterNumber=1;
return true;
}
if (viewPager.getCurrentItem() == 2) {
counterNumber=2;
return true;
}
if (viewPager.getCurrentItem() == 3) {
counterNumber=3;
return true;
}
if (viewPager.getCurrentItem() == 4) {
counterNumber=4;
return true;
}
return false;
}
});
viewPager.setPageTransformer(false, new ViewPager.PageTransformer() {
@Override
public void transformPage(View page, float position) {
page.setRotation(position*-100);
}
});
}
private class MyPagerAdapter2 extends FragmentPagerAdapter {
public MyPagerAdapter2(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
switch(pos) {
case 0: counterNumber=0; return FirstFragment1.newInstance("FirstFragment_1");
case 1: counterNumber=1;return SecondFragment1.newInstance("SecondFragment_1");
case 2: counterNumber=2;return ThirdFragment1.newInstance("ThirdFragment_1");
case 3: counterNumber=3;return FourthFragment1.newInstance("FourthFragment_1");
case 4: counterNumber=4;return FifthFragment1.newInstance("FifthFragment_1");
default: return FirstFragment1.newInstance("DefaultFragment_1");
}
}
@Override
public int getCount() {
return 5;
}
}
public void setCurrentItem(int which) {
if(viewPager != null && which >= 0 && which <= 4) {
viewPager.setCurrentItem(which);
}
}
}
public类MainActivity扩展了FragmentActivity{
私人视页机视页机;
私有整数计数器=-1;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager=(viewPager)findViewById(R.id.viewPager);
setAdapter(新的MyPagerAdapter2(getSupportFragmentManager());
viewPager.setOnTouchListener(新视图.OnTouchListener(){
@凌驾
公共布尔onTouch(视图v,运动事件){
如果(viewPager.getCurrentItem()==0){
计数器编号=0;
返回true;
}
如果(viewPager.getCurrentItem()==1){
计数器编号=1;
返回true;
}
如果(viewPager.getCurrentItem()==2){
计数器数=2;
返回true;
}
如果(viewPager.getCurrentItem()==3){
计数器数=3;
返回true;
}
如果(viewPager.getCurrentItem()==4){
计数器数=4;
返回true;
}
返回false;
}
});
viewPager.setPageTransformer(false,新建viewPager.PageTransformer(){
@凌驾
公共页面(查看页面、浮动位置){
第页设置旋转(位置*-100);
}
});
}
私有类MyPagerAdapter2扩展了FragmentPageRadapter2{
公共MyPagerAdapter2(碎片管理器fm){
超级(fm);
}
@凌驾
公共片段getItem(int-pos){
开关(pos){
案例0:计数器编号=0;返回FirstFragment1.newInstance(“FirstFragment1”);
案例1:计数器编号=1;返回SecondFragment1.newInstance(“SecondFragment1”);
案例2:计数器编号=2;返回ThirdFragment1.newInstance(“ThirdFragment1”);
案例3:counterNumber=3;返回FourthFragment1.newInstance(“FourthFragment1”);
案例4:计数器编号=4;返回FifthFragment1.newInstance(“FifthFragment1”);
默认值:返回FirstFragment1.newInstance(“DefaultFragment1”);
}
}
@凌驾
public int getCount(){
返回5;
}
}
public void setCurrentItem(int which){
if(viewPager!=null&&which>=0&&which