1
我的應用程序只有很少的片段。我正在使用ViewPager
,我期望爲ViewPager
交易提供不同的動畫。以下是我的代碼。Android:將「ViewPager」動畫從片段更改爲片段
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);
}
}
}
但是,我不需要在所有屏幕上使用相同的動畫。但是在某些情況下,我只想要這個自定義動畫,就像當你從第4個屏幕回到第3個屏幕時一樣。否則,當在第三屏幕中調用按鈕時,該屏幕被指示回到第一屏幕。
要做到這一點,我可以找到被稱爲片段(假設調用viewPager.setCurrentItem(4)
),並使動畫僅可用於該片段?
否則更好,有沒有辦法讓我單獨定義/更改動畫?當按下「轉到片段2」按鈕時,就像在第三片段中一樣 - 顯示一個動畫,在按下「轉到片段10」時的第一個片段中,顯示一個動畫?
無論如何,無論我選擇什麼方式,ViewPager
都不能被刪除,因爲我已經在很大程度上將其應用於我的應用。
謝謝。但它似乎不太好。似乎我們回來的時候動畫卡在中間。 –