【Kotlin】3ステップでサクッとFragment+ViewPagerでスワイプページを作る

※この記事の対象者は、早く実装する事が目的で作り方を完結に学びたい方です。

Fragment+ViewPagerでページングできるスワイプページをサクッと作ります。


手順


ステップ1. ViewPagerを持つFragment作成

ActivityがViewPagerを管理

ページングできるViewを持つ大元の画面を作っていきます。


class RootViewActivity : AppCompatActivity() {
    val viewPager : ViewPager by lazy { view_pager }

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

        // ↓ Fragmentの配列, Adapterは後で作成します。
        val fragments = arrayListOf(ViewFragment(), ViewFragment(), ViewFragment())
        val adapter = PagerAdapter(fragmentManager, fragments)
        viewPager.adapter = adapter
    }

}

ステップ2. FragmentPagerAdapter作成

PagerAdapterがFragmentを管理

PagerAdapterはページの切り替えを行う仕組みを書く場所です。 ページングできるViewの配列を持たせておきます。

※ ここで利用するFragmentは「support.v4」の方です。


class PagerAdapter(fragmentManager: FragmentManager, private var fragments: ArrayList<Fragment>) : FragmentPagerAdapter(fragmentManager) {

    init {
        getItem(0)
    }

    override fun getItem(position: Int): Fragment? {
        // ※ どのFragmentを表示させるかを設定
        return fragments[position]
    }

    override fun getCount(): Int {
        // ※ ページングする画面の数を設定
        return fragments.size
    }

}

ステップ3. 表示させるFragment作成

Fragmentとxmlを用意

最後に表示させるFragmentを作成します。


class ViewFragment : Fragment() {

    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        return inflater.inflate(R.layout.fragment_view, container, false)
    }

}

最後に

以上がKotlinのFragment+PagerAdapterを使ったスワイプページの作成手順です。 これだけでページングができる画面を作れるのかぁって感じです。 Kotlin楽しいですね!

0 コメント