【发布时间】:2019-08-19 11:47:56
【问题描述】:
在我的应用程序中,我想在 fragment 显示时显示消息。
我使用viewPager 和BottomNavBar 进行表演4 fragments!
我想要当点击BottomNavBar 项目时显示fragment 并且我想要当可见性 fragment 显示消息。
我写下面的代码:
class HomeRegisteredFragment : Fragment() {
lateinit var toolbarTile: TextView
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_home_registered, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//Initialize
activity?.let {
toolbarTile = it.findViewById(R.id.homePage_toolbarTitle)
}
//Set title
toolbarTile.text = resources.getString(R.string.registered)
context?.let { ContextCompat.getColor(it, R.color.blue_active) }?.let {
toolbarTile.setTextColor(it)
}
}
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if (isVisibleToUser) {
Log.e("showFragLog", "Show")
context?.let { Toast.makeText(it, "Show", Toast.LENGTH_SHORT).show() }
}
}
}
在我上面的代码中,当点击我的 BottomNavBar 显示 fragment 时,显示日志消息但不显示 Toast 消息。
当单击另一个 BottomNavBar 项目并再次单击上一个 BottomNavBar 项目时,然后显示 Toast 消息。
我认为在第一次 not initialize context in setUserVisibleHint 方法。
我如何每次都初始化context for show Toast?
【问题讨论】:
标签: android android-fragments kotlin android-context