본문 바로가기
안드로이드/AdapterView

안드로이드 ViewPager2

by 김어찐 2022. 6. 20.
728x90

2020년 중순 경에 추가된 View
ViewPager는 View를 전환할 수 있도록 제공되며 ViewPager2는 Fragment를 전환할 수 있도록 제공된다.

package com.example.viewpager2

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter
import kotlinx.android.synthetic.main.activity_main.*

// FragementActivity 상속
class MainActivity : FragmentActivity() {


    val frag1 = SubFragment1()
    val frag2 = SubFragment2()
    val frag3 = SubFragment3()

    val fragList = arrayOf(frag1,frag2,frag3)

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

        setActionBar(toolbar)
//        val adapter1 = object : FragmentStateAdapter()

        val adapter1 = object : FragmentStateAdapter(this) {
            override fun getItemCount(): Int {
                return fragList.size
            }

            override fun createFragment(position: Int): Fragment {
                return fragList[position]
            }
        }

        pager2.adapter = adapter1
    }

}

 

 

FragmentActivity() 상속 받아서 MainActivity 클래스에서 setActionBar(toolbar)를 사용할려면  <Toobar>로 변경해줘야한다.

 

 

 

Fragment()

package com.example.viewpager2

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment

class SubFragment3 : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        val view = inflater.inflate(R.layout.fragment_sub3, null)

        return view
    }
}
728x90

'안드로이드 > AdapterView' 카테고리의 다른 글

안드로이드 TabLayout  (0) 2022.06.20
안드로이드 AppBar Layout  (0) 2022.06.20
안드로이드 RecyclerView  (0) 2022.06.07
안드로이드 MultiChoiceListView  (0) 2022.06.07
안드로이드 SingleChoiceListView  (0) 2022.06.07