В моем приложении я хочу показать сообщение, когда 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 .
Я думаю, что в первый раз не инициализировать context
в методе setUserVisibleHint
.
Как я могу инициализировать context
для шоу Тост в каждый раз?