viewpager 不允许向左滑动

viewpager does not allow to swipe left

所以如果我有三个片段 A、B 和 C。 因此,当我启动 Fragment B 时,我希望 viewpager 让我从左向右滑动,它应该带我回到 Fragment A,但是 viewpager 默认情况下让我从右向左滑动以转到 Fragment A。

所以基本上我希望 viewpager 让我从左向右滑动而不是从右向左滑动。

我也试过: viewpager.setRotationY=180 这确实让我可以做我想做的事,但我的片段中的所有内容都会颠倒过来。

我使用的适配器:


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

我使用适配器的activity:


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

            }
        });


    }
}

我认为您的代码误导了您,因为您在 setAdapter(...) 之前使用了 viewPager.setCurrentItem(1);,您的 ViewPager 将不会如您预期的那样转到项目 1

所以,试着把 viewPager.setCurrentItem(1); 放在 setAdapter(...)

之后