android - viewpager 不允许向左滑动
问题描述
因此,如果我有三个 Fragment A、B 和 C。所以当我启动 Fragment BI 时,希望 viewpager 让我从 LEFT 滑动到 RIGHT,它应该带我回到 Fragment A,但 viewpager 默认让我从 RIGHT 滑动到向左转到片段 A。
所以基本上我想让viewpager让我从左滑到右,而不是从右滑到左。
我也尝试过:
viewpager.setRotationY=180
这确实让我可以做我想做的事,但我的 Fragments 中的所有内容都会颠倒过来。
我正在使用的适配器:
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;
}
}
我使用适配器的活动:
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);
}
});
}
}
解决方案
我认为您的代码误导了您,因为您使用ViewPagerviewPager.setCurrentItem(1);
之前不会像您预期的那样setAdapter(...)
转到第 1项。
所以,试着把它放在viewPager.setCurrentItem(1);
后面setAdapter(...)
推荐阅读
- python - groupby 中的 Pandas 加权模式
- javascript - 如何获取密钥然后删除未关联到数组的密钥?
- django - 找不到 Django 超级用户页面
- r - 有什么预测方法吗?
- spring - Spring Security 5 和 Oauth2 中的客户端凭据流无法使用 Spring WebClient 工作
- upload - Tinydrive 上的自定义上传
- windows - 使用 !ERRORLEVEL! 在通过管道传输到另一个进程的代码块中
- lua - 我的 lua 代码有问题,它带有 ) 的东西要关闭
- c - 将 C 代码转换为 MATLAB 代码?关于帕斯卡三角函数和递归函数
- python - time_() = time.time() SyntaxError: “can't assign to function call” PYTHON