Android 如何使用可切换选项卡实现PageTransformer

Android 如何使用可切换选项卡实现PageTransformer,android,android-viewpager,android-tabs,android-pagetransformer,Android,Android Viewpager,Android Tabs,Android Pagetransformer,在我的示例代码中,MainActivity.java中有三个可滑动的选项卡,即:Android、IOS和WINDOWS,我使用滑动在选项卡之间切换 现在,我必须实现带有可切换选项卡的PageTransformer,所以这里我需要您的帮助,是否可能,如果可能,如何实现 MainActivity.java:- public class MainActivity extends FragmentActivity { ViewPager Tab; TabPagerAdapter

在我的示例代码中,MainActivity.java中有三个可滑动的选项卡,即:Android、IOS和WINDOWS,我使用滑动在选项卡之间切换

现在,我必须实现带有可切换选项卡的PageTransformer,所以这里我需要您的帮助,是否可能,如果可能,如何实现

MainActivity.java:-

    public class MainActivity extends FragmentActivity {
    ViewPager Tab;
    TabPagerAdapter TabAdapter;
    ActionBar actionBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        TabAdapter = new TabPagerAdapter(getSupportFragmentManager());

        Tab = (ViewPager)findViewById(R.id.pager);
        Tab.setOnPageChangeListener(
                new ViewPager.SimpleOnPageChangeListener() {
                    @Override
                    public void onPageSelected(int position) {

                        actionBar = getActionBar();
                        actionBar.setSelectedNavigationItem(position);                    
                    }
                });
        Tab.setAdapter(TabAdapter);

        ..............
    }
}
以下是我想在我的计划中实施的内容:

这就是我的标签的外观:


为您的
活动创建一个内部类

public class MyPageTransformer implements ViewPager.PageTransformer {

    public void transformPage(View view, float position) {
        // Do your transform here
    }
}
然后在
活动中
可以在
查看页面上设置它。例如

Tab.setPageTransformer(true, new MyPageTransformer());

阅读更多信息,这里甚至有几个转换示例可供您尝试和自定义。

您必须使用
setPageTransformer()
来执行这种类型的导航。。 使用下面的代码创建您的寻呼机

将此代码添加到您的MainActivity.java

Tab = (ViewPager)findViewById(R.id.pager); // you have defined view pager as `TAB`

    Tab.setPageTransformer(false, new PageTransformer() {

            public void transformPage(View page, float position) {

                page.setRotationY(position * -30); // animation style... change as you want..
            }
        });
        Tab.setCurrentItem(pos);
    }
从这里获取更多动画样式。。或者

我找到了我的解决方案,它真的很容易实现

使用非常简单,只需将PageTransformer附加到ViewPager:

viewpager.setPageTransformer(false, new ViewPager.PageTransformer() {
    @Override
    public void transformPage(View page, float position) {
        // do transformation here
        }
});
将页面绕其Z轴旋转30度;这一次你不需要正常化。其效果类似于封面流UI模式:

@Override
public void transformPage(View page, float position) {
    page.setRotationY(position * -30);
}
这是我最后的代码,我使用了:

viewPager = (ViewPager)findViewById(R.id.pager);

        viewPager.setOnPageChangeListener(
                new ViewPager.SimpleOnPageChangeListener() {
                    @Override
                    public void onPageSelected(int position) {                       
                        actionBar = getActionBar();
                        actionBar.setSelectedNavigationItem(position);                    
                    }
                });

        viewPager.setAdapter(tabAdapter);        
        viewPager.setPageTransformer(false, new PageTransformer() {

            public void transformPage(View page, float position) {

                page.setRotationY(position * -30); // animation style... change as you want..
            }
        });

按照@Squonk的建议,您是否遵循了?你有没有遇到过什么问题?@Moon你能举个例子说明一下lokks的情况吗?