LoginSignup
1
0

More than 5 years have passed since last update.

ViewPager + Tablayoutとこれらを使わないFragmentを1つのActivityで入れ替え。

Last updated at Posted at 2018-03-05

単位取得より広告収入の方が嬉しいみんめです。今回もAndroid関連です。

タブ付きViewPagerと、タブ無しFragmentレイアウトの共存。

構造

  • ナビゲーションドロワー
  • include
    • toolbar
    • tabLayout(TabLayout)
      • TabItem
      • TabItem
    • fragment_container(Fragment Container)
    • viewPager(ViewPager)

ここで、TabLayout + ViewPagerを使うレイアウトと、TabLayoutなしで単にFragmentを表示したレイアウトを、別のアクティビティを用意しないで使います。

Visibility

ViewPagerを使う場合。

setViewPager.kt
  private fun setViewPager() {
        val adapter = PagerAdapter(supportFragmentManager)
        fragment_container.visibility = View.GONE
        tabLayout.visibility = View.VISIBLE
        viewPager.visibility = View.VISIBLE
        viewPager.adapter = adapter
        tabLayout.setupWithViewPager(viewPager)
    }

使わない場合。

showFragment.kt
private fun showFragment(fm: Fragment) {
        if(viewPager.visibility == View.VISIBLE) viewPager.visibility = View.GONE
        if(tabLayout.visibility == View.VISIBLE) tabLayout.visibility = View.GONE
        fragment_container.visibility = View.VISIBLE
        supportFragmentManager.beginTransaction()
                .add(R.id.fragment_container, fm, FragmentTag.name).commit()
}

パーツのvisibilityを設定してあげて切り替えるよってだけです。
View.VISIBLEが見えて使える状態。
View.GONEが消えてる状態。

勝手な先入観(?)で、TabLayout+ViewPagerレイアウト用にアクティビティ新しく作ったりしてツールバー周りでおかしくなったりしてたのでメモ。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0