So if I have three Fragments A,B, and C. So when I launch Fragment B I want viewpager to let me swipe from LEFT to RIGHT and it should take me back to Fragment A, but viewpager, by default lets me swipe from RIGHT to LEFT to go to Fragment A.
So basically I want viewpager to let me swipe from LEFT to RIGHT and not from RIGHT to LEFT.
Also I tried:
viewpager.setRotationY=180
That does let me do what I want but all the contents in my Fragments get flipped upside down.
The adapter I am using:
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import org.jetbrains.annotations.NotNull;
public class Adapter extends FragmentPagerAdapter {
public Adapter(FragmentManager fragmentManager){
super(fragmentManager);
}
@NonNull
@NotNull
@Override
public Fragment getItem(int position) {
if(position==0){
return new SettingsFragment();
}
if(position==1){
return new BlankFragment();
}
if(position==2){
return new VersionFragment();
}
return null;
}
@Override
public int getCount() {
return 3;
}
}
The activity where I use the adapter:
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
Fragment fr=new Fragment();
getSupportFragmentManager().beginTransaction().addToBackStack(null).add(fr,"settings_fragment").commit();
runOnUiThread(new Runnable() {
@Override
public void run() {
ViewPager viewPager=findViewById(R.id.ViewPager);
viewPager.setCurrentItem(1);
viewPager.setAdapter(new Adapter(getSupportFragmentManager()));
viewPager.setOffscreenPageLimit(1);
}
});
}
}
I think your code is misleading you, because you using viewPager.setCurrentItem(1);
before setAdapter(...)
which you ViewPager will not go to item 1 as you expected.
So, try put that viewPager.setCurrentItem(1);
after setAdapter(...)