如何使用可滑动选项卡实现PageTransformer [英] How to Implement PageTransformer with Swipeable Tabs

查看:123
本文介绍了如何使用可滑动选项卡实现PageTransformer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的示例代码中,MainActivity.java中有三个可滑动选项卡,分别是:Android,IOS和WINDOWS,并且我正在使用滑动来在选项卡之间进行切换.

In my example code i have three Swipeable Tabs in MainActivity.java namely : Android, IOS and WINDOWS and i am using swipe to switch between Tabs.

现在,我必须使用可滑动选项卡实现PageTransformer,所以在这里我需要您的帮助,是否可以,如果可以,怎么办?

Now, i have to implement PageTransformer with Swipeable Tabs, so here i need your help, is it possible, if yes so how ?

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);

        ..............
    }
}

这是我要在程序中实现的内容:

Here is what i want to implement in my program :

这是我的标签页的外观:

and this is how my Tab looks :

推荐答案

我找到了解决方案

I found my solution here, its really easy to implement

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

Usage is pretty straightforward, just attach a PageTransformer to the ViewPager:

viewpager.setPageTransformer(false, new ViewPager.PageTransformer() {
    @Override
    public void transformPage(View page, float position) {
        // do transformation here
        }
});

将页面绕其Z轴旋转30度;您无需为此标准化.效果类似于封面流程UI模式:

rotates the pages around their Z axis by 30 degrees; you don’t need to normalize for this one. The effect is similar to the cover flow UI pattern:

@Override
public void transformPage(View page, float position) {
    page.setRotationY(position * -30);
}

这是我使用的最终代码:

so here is my final code, which i used:

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..
            }
        });

这篇关于如何使用可滑动选项卡实现PageTransformer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆