単位取得より広告収入の方が嬉しいみんめです。今回も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レイアウト用にアクティビティ新しく作ったりしてツールバー周りでおかしくなったりしてたのでメモ。