Обратное направление смахивания в ViewPager - PullRequest
0 голосов
/ 23 сентября 2018

Есть ли какой-нибудь возможный способ изменить пролистывание фрагментов слева направо?мои фрагменты смахивают справа налево, но мне нужно фрагменты смахивать слева направо.

Pager Adapter.kt

class pageradapter (fm: FragmentManager) : FragmentStatePagerAdapter(fm){
override fun getItem(position: Int): Fragment {
    when(position){
        0-> return fragment1()
        1-> return fragment2()
        else-> return fragment3()
    }
}

override fun getCount(): Int {
    return 3
}

frag1.kt // 2 и 3 имеет одинаковый код

class fragment1 : Fragment() {


override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                          savedInstanceState: Bundle?): View? {
    // Inflate the layout for this fragment
    return inflater.inflate(R.layout.fragment1, container, false)
}

Main4Activity.kt

class Main4Activity : AppCompatActivity(){

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main4)

    val adapter = pageradapter(supportFragmentManager)
    val pager = findViewById<View>(R.id.pager) as ViewPager
    pager.adapter = adapter

}

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Вы можете анимировать его, используя PageTransformer

Или

Если вы хотите анимацию при замене фрагмента, вы можете установить собственную анимацию на FragmentTransaction

0 голосов
/ 23 сентября 2018

Вы должны поменять местами Fragment, как показано ниже:

В PagerAdapter.kt

class pageradapter (fm: FragmentManager) : FragmentStatePagerAdapter(fm){
     override fun getItem(position: Int): Fragment {
         when(rotatePosition(position)) {
             0-> return fragment1()
             1-> return fragment2()
             else-> return fragment3()
         }
     }

    override fun getCount(): Int {
        return 3
    }

    private fun rotatePosition(position: Int): Int {
        return (getCount() - 1) - position
    }
}

В Main4Activity :

class Main4Activity : AppCompatActivity(){

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main4)

        val adapter = pageradapter(supportFragmentManager)
        val pager = findViewById<View>(R.id.pager) as ViewPager
        pager.adapter = adapter
        // setting new start position
        pager.setCurrentItem(adapter.rotatePosition(0), false);

}
...