gpt4 book ai didi

android - 如何使用 Kotlin 从内部 fragment_name.kt 源文件访问 supportActionBar

转载 作者:行者123 更新时间:2023-11-30 05:00:14 25 4
gpt4 key购买 nike

在我的 MainActivity.kt 文件中,我可以访问 supportActionBar.title 并设置标题。

TitleScreenFragment.kt 中,我无法访问:

activity.supportActionBar.title

当我尝试只使用 activity.actionBar.title 时,该值为 null。

如何从我的 fragment 代码中访问 activity.supportActionBar.title

MainActivity.kt:

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)



val binding = DataBindingUtil.setContentView<ActivityMainBinding>(this,
R.layout.activity_main)

val navController = this.findNavController(R.id.nav_host_fragment)

NavigationUI.setupActionBarWithNavController(this, navController)

//THIS WORKS HOW DO I ACCESS THIS FUNCTIONALITY FROM FRAGMENT CODE???
supportActionBar?.title = "Ingredient Display"
}

override fun onSupportNavigateUp(): Boolean {
val navController = this.findNavController(R.id.nav_host_fragment)
return navController.navigateUp()
}

TitleScreenFragment.kt

    class TitleScreenFragment : Fragment() {

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {

// Setup the binding object with the layout and inflate it

val binding = DataBindingUtil.inflate<FragTitleBinding>(inflater, R.layout.frag_title, container, false)

// Set navigation action as an onclicklistener for button
binding.btnBeginInput.setOnClickListener{
view?.findNavController()?.navigate(R.id.action_titleScreenFragment_to_ingredientInputFragment)

}

//THIS IS NULL
println(activity?.actionBar?.title)

// return the inflated object in the binding

return binding.root
}
}

最佳答案

你可以使用类似的东西:

(activity as AppCompatActivity).supportActionBar?.title = "Ingredient Display"

onViewCreated 方法中(不在 onCreateView 中)。

关于android - 如何使用 Kotlin 从内部 fragment_name.kt 源文件访问 supportActionBar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58381831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com