ナビゲーションバー自体の形状をそのように弧状に変更するメインの中央アクションボタンで下部ナビゲーションバーを変更しようとしている
または、中央のボタンを囲む下部ナビゲーションのこぶ。
BottomNavigationView
を拡張する必要がある場合は問題ありませんが、どこから始めればよいかわかりません。
私は この同様の質問 を見つけましたが、それは私が解決しようとしている正確な問題ではありません。
ブロ、これを試してください
BottomAppBarとFloatingActionButtonを親CoordinatorLayoutに配置し、FloatingActionButtonのapp:layout_anchor属性をBottomAppBarの参照IDに設定するだけです。
<Android.support.design.bottomappbar.BottomAppBar Android:id="@+id/bottom_appbar" Android:layout_width="match_parent" Android:layout_height="wrap_content" Android:layout_gravity="bottom" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" app:fabAttached="true" app:backgroundTint="@color/colorPrimary" app:fabCradleVerticalOffset="12dp"> </Android.support.design.bottomappbar.BottomAppBar> <Android.support.design.widget.FloatingActionButton Android:id="@+id/fab" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:layout_gravity="bottom|center_horizontal" Android:src="@drawable/ic_add_white_24dp" app:layout_anchor="@+id/bottom_appbar"/> <FrameLayout Android:layout_width="match_parent" Android:layout_height="match_parent"> <Android.support.design.button.MaterialButton Android:id="@+id/toggle_alignment" Android:layout_width="wrap_content" Android:layout_height="48dp" Android:layout_gravity="center" Android:textColor="#fff" Android:text="Toggle FAB alignment" app:backgroundTint="@color/colorPrimary"/> </FrameLayout>
To set menu options you can provide Menu resource to your BottomAppBar in code by calling BottomAppBar.replaceMenu(R.menu.xxx) and to toggle the alignment I created a simple extensions function
import kotlinx...bottom_appbar
import kotlinx...fab
import kotlinx...toggle_alignment
// using kotlin-Android-extensions here for findViewById calls
class BottomAppBarActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.actvity_bottom_appbar)
//setSupportActionBar(bottom_appbar) calling this breaks it!
// setting the menu
bottom_appbar.replaceMenu(R.menu.bottom_appbar_menu)
toggle_alignment.setOnClickListener {
bottom_appbar.toggleAlignment()
}
}
fun BottomAppBar.toggleAlignment() {
val current = fabAlignmentMode
fabAlignmentMode = current.xor(1)
}
}
このタイプのボトムアプリバーには、Support Library v28が付属しています。これは、Joe Birchによる 記事 が役立ちます。