TabLayoutについて
現在KotlinやJavaのプログラミング&androidのアプリ制作の勉強をしています。
android studioのタブアクティビティや他サイトなどでTabについて調べていたのですが、「Tab」というのが思ったより分かりにくく(初心者な自分の稚拙な解釈のせいで勝手に分からなくなってる)、自分だけで解決できそうにないのでこちらで質問させていただきました。
この「Tab」というものを使用する際、例えば、Tab1が選択された時、「01.xml」が表示されて、Tab2が選択された時、「02.xml」が表示されるといった、複数のxmlを使うということはできないのでしょうか?
また、どの部分でどのTabが選択されたかを判別しているのでしょうか?if式と違って難しくて何が何だか…
個人的にはnewInstance(position + 1)あたりが怪しいとにらんでます。
参考にしたコード
Java
1class MainActivity : AppCompatActivity() { 2 3 private var mSectionsPagerAdapter: SectionsPagerAdapter? = null 4 5 override fun onCreate(savedInstanceState: Bundle?) { 6 super.onCreate(savedInstanceState) 7 setContentView(R.layout.activity_main) 8 9 setSupportActionBar(toolbar) 10 mSectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager) 11 12 container.adapter = mSectionsPagerAdapter 13 14 container.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(tabs)) 15 tabs.addOnTabSelectedListener(TabLayout.ViewPagerOnTabSelectedListener(container)) 16 17 18 } 19 inner class SectionsPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) { 20 21 override fun getItem(position: Int): Fragment { 22 return PlaceholderFragment.newInstance(position + 1) 23 } 24 25 override fun getCount(): Int { 26 return 3 27 } 28 } 29 30 class PlaceholderFragment : Fragment() { 31 32 override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,savedInstanceState: Bundle?): View? { 33 val rootView = inflater.inflate(R.layout.fragment_main, container, false) 34 rootView.section_label.text = getString(R.string.section_format, arguments?.getInt(ARG_SECTION_NUMBER)) 35 return rootView 36 Log.d("count", ARG_SECTION_NUMBER) 37 } 38 39 companion object { 40 private val ARG_SECTION_NUMBER = "section_number" 41 42 fun newInstance(sectionNumber: Int): PlaceholderFragment { 43 val fragment = PlaceholderFragment() 44 val args = Bundle() 45 args.putInt(ARG_SECTION_NUMBER, sectionNumber) 46 fragment.arguments = args 47 Log.d("count", ARG_SECTION_NUMBER) 48 return fragment 49 } 50 } 51 } 52}
あなたの回答
tips
プレビュー