BottomNavigationViewにバッジを表示する
BottomNavigationViewでバッジを表示する機能が追加されたっていう記事をみて自分でも試してみた。
が、バッジを表示なんてできないじゃないか!?
どういうことか?
しらべてみた。
結論
AndroidXのmaterialライブラリのalpha06から使えるようになった。
フツーにサポートライブラリで使えるのかと思っていたよ。。。
皆さんも、AndroidXにのりかえましょー!
-
android.support.design.widget.BottomNavigationView
(com.android.support:design)- 28.0.0 →非対応
-
com.google.android.material.bottomnavigation.BottomNavigationView
(com.google.android.material:material)- 1.0.0 : 非対応
- 1.1.0-alpha05 : 非対応
- 1.1.0-alpha06 : 対応!!!(ここから)
- 1.1.0-alpha07 : 対応
- 1.1.0-alpha08 : 対応(showBadge()が消えたので注意)
画面サンプル
実装方法
AndroidStudio のBottomNavigationViewActivity をベースに修正。
alpha06~alpha07まで
バッヂ表示が追加されました。
showBadge()でバッヂが表示されますが、
引数 menuItemId はgetMenu().getItem(0).itemId で取得したIDを使ってください。
package com.example.androidxapp
import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import android.widget.TextView
import androidx.core.view.get
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
textMessage = findViewById(R.id.message)
navView.setOnNavigationItemSelectedListener(onNavigationItemSelectedListener)
navView.menu.getItem(0).itemId.let {
navView.showBadge(it).apply {
number = 999
}
}
}
}
alpha08から
showBadge()が削除されました。
BadgeDrawable#isVisible=trueにします。
package com.example.androidxapp
import android.os.Bundle
import com.google.android.material.bottomnavigation.BottomNavigationView
import androidx.appcompat.app.AppCompatActivity
import android.widget.TextView
import androidx.core.view.get
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val navView: BottomNavigationView = findViewById(R.id.nav_view)
textMessage = findViewById(R.id.message)
navView.setOnNavigationItemSelectedListener(onNavigationItemSelectedListener)
navView.menu.getItem(0).itemId.let {
navView.getOrCreateBadge(it).apply {
number = 999
isVisible = true
}
}
}
}
いじょ
Author And Source
この問題について(BottomNavigationViewにバッジを表示する), 我々は、より多くの情報をここで見つけました https://qiita.com/pongi/items/85e237afa96aa83bc198著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .