В настоящее время я пытаюсь объединить два разных вида деятельности. Одним из них является моя основная активность, которая является нижней навигационной активностью, а другая - моя вкладка, которая является моей активностью с вкладками. Я не уверен, как сделать так, чтобы мой TabbedActivity вписывался в мою MainActivity, поэтому в одном разделе нижней навигации (домашняя страница) размещались бы вкладки. Могу ли я создать фрагмент, который является родительским элементом с активностью tabbed И если да, то как бы это выглядело?
Все мои фрагменты содержат только списки, единственное отличие - содержимое списка. Кроме того, я не включил PlaceHolderFragment2, потому что он такой же, как PlaceHolderFragment, за исключением предварительно заполненного массива
class MainActivity: AppCompatActivity () {
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
// TODO this tab will have a tabbed frag
R.id.navigation_home -> {
val your_array_list = ArrayList<String>()
your_array_list.add("one")
your_array_list.add("two")
val arrayAdapter = ArrayAdapter(this,
android.R.layout.simple_list_item_1,
your_array_list)
menu.adapter = arrayAdapter
return@OnNavigationItemSelectedListener true
}
R.id.navigation_dashboard -> {
val your_array_list = ArrayList<String>()
your_array_list.add("three")
your_array_list.add("four")
val arrayAdapter = ArrayAdapter(this,
android.R.layout.simple_list_item_1,
your_array_list)
menu.adapter = arrayAdapter
return@OnNavigationItemSelectedListener true
}
R.id.navigation_notifications -> {
val your_array_list = ArrayList<String>()
your_array_list.add("five")
your_array_list.add("six")
val arrayAdapter = ArrayAdapter(this,
android.R.layout.simple_list_item_1,
your_array_list)
menu.adapter = arrayAdapter
return@OnNavigationItemSelectedListener true
}
}
false
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
}
}
class TabbedActivity : AppCompatActivity() {
private var mSectionsPagerAdapter: SectionsPagerAdapter? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_tabbed)
setSupportActionBar(toolbar)
mSectionsPagerAdapter = SectionsPagerAdapter(supportFragmentManager)
container.adapter = mSectionsPagerAdapter
container.addOnPageChangeListener(TabLayout.TabLayoutOnPageChangeListener(tabs))
tabs.addOnTabSelectedListener(TabLayout.ViewPagerOnTabSelectedListener(container))
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.menu_tabbed, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
val id = item.itemId
if (id == R.id.action_settings) {
return true
}
return super.onOptionsItemSelected(item)
}
inner class SectionsPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
override fun getItem(position: Int): Fragment {
when(position) {
0 -> return PlaceholderFragment()
else -> return PlaceholderFragment2()
}
}
override fun getCount(): Int {
return 3
}
}
class PlaceholderFragment : Fragment() {
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View? {
val rootView = inflater.inflate(R.layout.fragment_tabbed, container, false)
val your_array_list = ArrayList<String>()
your_array_list.add("a")
your_array_list.add("b")
val arrayAdapter = ArrayAdapter(
context!!,
android.R.layout.simple_list_item_1,
your_array_list
)
rootView.tabsMenu.adapter = arrayAdapter
return rootView
}
}
}
В настоящее время я не могу объединить эти два вида деятельности. В идеале я бы мог видеть вкладки в одном разделе моей нижней навигации.