Depth Pager Transformer就像SnapChat一样

rah*_*hah 8 android android-fragments android-viewpager snapchat

我试图实现ViewPagerDepthPageTransformer就像Snapchat应用.在SnapChat应用程序中,有一个始终位于中心的摄像头屏幕,ViewPager从左或右滑动会在摄像头屏幕上方显示其他碎片.

DepthPageTransformer这个链接找到了代码.但是这个演示的问题在于它从后面带来了所有下一个屏幕视图.就像SnapChat一样,我在中央有一个摄像头屏幕,两个屏幕从左上方开始,两个屏幕从摄像头屏幕右上方显示.

那么,我怎么能创建一个PageTransformer从我的中心屏幕顶部左侧或右侧带来片段的相机?

Rad*_*ekJ 7

我想你应该在你的FragmentPagerAdapter中提供5个片段,第三个(index = 2)片段将是带有摄像头视图的片段,

viewPager.setCurrentItem(2); //2 is index of camera fragment
Run Code Online (Sandbox Code Playgroud)

然后你ViewPager.PageTransformer应该看起来像这样:

@Override
public void transformPage(View page, float position) {
  int pageIndex = (int) page.getTag(); //im stroing pageIndex of fragment in its tag
  if(pageIndex == 2) { //2 is index of camera fragment
     float currentTranslation = - position * page.getWidth();
     ViewCompat.setTranslationX(page, currentTranslation);
     ViewCompat.setTranslationZ(page, -1);
     return;
}
Run Code Online (Sandbox Code Playgroud)

我正在stroing,pageIndex而片段的视图是在其标签中创建的.

@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    ...
    view.setTag(pageIndex);
    return view;
}
Run Code Online (Sandbox Code Playgroud)

这是带结果的gif:https: //media.giphy.com/media/OIwmXdr3nukq4/giphy.gif

食物片段是您应该用相机片段替换的片段.