4

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

现在,我必须用 Swipeable Tabs 实现 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);

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

这是我想在我的程序中实现的:

在此处输入图像描述

这就是我的标签的外观:

在此处输入图像描述

4

3 回答 3

6

你必须用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 转换自定义动画

于 2014-08-12T06:47:56.037 回答
2

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

用法非常简单,只需将 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..
            }
        });
于 2014-08-12T07:10:01.550 回答
0

创建一个内部类Activity...

public class MyPageTransformer implements ViewPager.PageTransformer {

    public void transformPage(View view, float position) {
        // Do your transform here
    }
}

然后在你的Activity你可以将它设置在你的ViewPager. 例子...

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

在使用 PageTransformer 自定义动画中阅读更多内容甚至还有一些变换示例可供您尝试和自定义。

于 2014-08-05T10:37:25.457 回答