android - kotlin android 动作栏标题
问题描述
MainActivity 中的以下函数,App 名称为 Qpon。该应用程序运行良好,只有第一页的操作栏标题有问题。它应该为栏标题显示“fff”,但它在应用程序启动时显示应用程序名称“Qpon”。但是当我转到其他片段并返回第一个片段时,它会正确显示。
private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item ->
when (item.itemId) {
R.id.navigation_qpon -> {
//message.setText(R.string.title_qpon)
actionBarIcon(R.drawable.ic_title_black)
createQponFragment()
return@OnNavigationItemSelectedListener true
}
R.id.navigation_me-> {
//message.setText(R.string.title_me)
actionBarIcon(R.drawable.logged)
createMeFragment()
return@OnNavigationItemSelectedListener true
}
R.id.navigation_tool -> {
//message.setText(R.string.title_tool)
actionBarIcon(R.drawable.logged)
createToolFragment()
return@OnNavigationItemSelectedListener true
}
R.id.navigation_tutorial -> {
//message.setText(R.string.title_tutorial)
actionBarIcon(R.drawable.tutorial)
createTutorialFragment()
return@OnNavigationItemSelectedListener true
}
}
false
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Obtain the FirebaseAnalytics instance.
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this)
actionBarIcon(R.drawable.ic_title_black)
createQponFragment()
navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener)
}
fun getCurrentNumber():String {
var mAuth: FirebaseAuth? = null
mAuth = FirebaseAuth.getInstance()
val cUser = mAuth?.currentUser
val userPhone = cUser?.phoneNumber
if (userPhone != null) {
return userPhone.toString()
}
else { return "" }
}
fun actionBarIcon(imageName:Int) {
setSupportActionBar(findViewById(R.id.my_toolbar))
my_toolbar.setLogo(imageName)
if (imageName == R.drawable.ic_title_black) my_toolbar.setTitle("fff")
if (imageName == R.drawable.logged) my_toolbar.setTitle(getCurrentNumber())
if (imageName == R.drawable.tutorial) my_toolbar.setTitle("Tutorial")
}
解决方案
fun actionBarIcon(imageName:Int) {
setSupportActionBar(findViewById(R.id.my_toolbar))
my_toolbar.setLogo(imageName)
/*
What is to be done to solve the issue:-
Below code is setting up title to fff if only the condition is met. but there you have not set any title if condition is not met so by default it is picking up app name.
So, give a default value when activity is visible. Either provide title to toolbar in layout or use
// Set toolbar title/app title
my_toolbar!!.title = "fff"
*/
if (imageName == R.drawable.ic_title_black) my_toolbar.setTitle("fff")
if (imageName == R.drawable.logged) my_toolbar.setTitle(getCurrentNumber())
if (imageName == R.drawable.tutorial) my_toolbar.setTitle("Tutorial")
}
您可以查看代码中的注释或参考以下链接,例如访问https://android--code.blogspot.com/2018/02/android-kotlin-toolbar-example.html
推荐阅读
- r - 如何在 R 中使用并发值求和
- portal - Azure DevOps 的票证日志记录门户
- javascript - 'success' 是 jquery click 函数的有效属性吗
- ansible - 如何使用ansible验证特定接口的静态路由
- amazon-web-services - Cloudformation 模板报告为可用容器的缺失属性
- node.js - Docker 构建在 codebuild 中的 npm 包失败
- c++ - 将数字附加到文件
- macos - Apple Pages:通过 AppleScript 提取段落的“样式”
- jpa - 如何编写 JPA 修改查询以正确更新 DATETIME 或 TIMESTAMP 列?
- linux - wxPython wx.NotificationMessage 'BadImplementation(服务器未实现操作)'