マテリアルデザインと同じように、トップツールバーメニュー+ BottomAppBarメニュー+ BottomNavigationDrawerFragment

ઽ૯૯

私が達成したいのは、この画像のようなものです(ただし、トップはNavigationViewありません)が、Toolbarメニュー+BottomAppBarメニュー+BottomNavigationDrawerFragmentマテリアルデザインとまったく同じです。

ここに画像の説明を入力してください

私は私の答えBottomAppBarによってメニューを管理することができましたreplace()

val bottomBar = findViewById<BottomAppBar>(R.id.bottomAppBar)
bottomBar.replaceMenu(R.menu.menu_main)

これにより、BottomAppBar以下のコードに加えonCreateOptionsMenu()ToolbarメニューとsetSupportActionBar()メニューを膨らませることができます

val toolbar = findViewById<Toolbar>(R.id.myToolbar)
setSupportActionBar(toolbar)

The point is, in this tutorial (for example), he used setSupportActionBar(bottom_app_bar) for setting SupportActionBar on the BottomAppBar. So, if we use setSupportActionBar(bottom_app_bar) for the BottomAppBar, it will show the BottomNavigationDrawerFragment + Menus are handlable on the Bottom Side.

But, what about Toolbar and menus? Toolbar + menu items won't be handlable nor showing up if we use setSupportActionBar(bottomAppbar).

The things that I have tested are:

  • Might sound ridiculous but used two setSupportActionBar() for both Toolbar and BottomAppBar
  • Even tried to inflate two menus by onCreateOptionsMenu() method but none worked.

The question is, How can we have Top Toolbar Menu + BottomAppBar Menu + BottomNavigationDrawerFragment all together?

Any thoughts?

ʍѳђઽ૯ท

うまくいけば、私は答えを見つけました。したがって、そのようなレイアウトを作成する場合(トップなしNavigationDrawer- view)、手順は次のとおりです。

Toolbarいつものように宣言します

val toolbar = findViewById<Toolbar>(R.id.myToolbar)
setSupportActionBar(toolbar)

オーバーライドonCreateOptionsMenu トップとToolbarメニュー

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.top_menu, menu)
    return super.onCreateOptionsMenu(menu)
}

BottomBarメニューの処理Menuアプリの下部での新しいメニューの置き換え、および選択BottomSheetFragment時に表示するには、以下を使用しますNavigationIcon

val bottomBar = findViewById<BottomAppBar>(R.id.bottomAppBar)
bottomBar.replaceMenu(R.menu.bottom_menu)
bottomBar.setNavigationOnClickListener {
        val bottomNavDrawerFragment = BottomNavigationDrawerFragment()
        bottomNavDrawerFragment.show(supportFragmentManager, bottomNavDrawerFragment.tag)
    }
bottomBar.setOnMenuItemClickListener { menuItem ->

        when (menuItem.itemId) {
            R.id.search_Action ->{
                Toast.makeText(this@MainActivity, "Clicked", Toast.LENGTH_LONG).show()
            }
        }
         true
    }

そして最後に、オーバーライドonOptionsItemSelected()

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
    when (item!!.itemId) {

        R.id.action_settings -> {

            startActivity(Intent(this@MainActivity, SettingsActivity::class.java))

        }

        R.id.changeView -> {
            toast("Test")

        }
    }
    return true
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ