0

目前我正在尝试整合两种不同的活动。一个是我的 mainAcitivity,这是一个底部导航活动,另一个是我的 tabbedActivity,这是我的选项卡活动。我不确定如何让我的 tabbedActivity 适合我的 MainActivity,所以底部导航(主页)的一部分将容纳选项卡。我可以创建一个作为 tabbedActivity 父级的片段吗?如果是这样,那会是什么样子?

我所有的片段都只包含列表视图,唯一的区别是列表视图的内容。另外,我没有包含 PlaceHolderFragment2,因为它与 PlaceHolderFragment 相同,除了预先填充的 arraylist

类 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
    }
}
}

目前我无法整合这两个活动。理想情况下,我将能够在底部导航的一个部分中看到标签。

4

0 回答 0