[英]Android: best way to make a View disappear after a defined amount of time
[英]How to make a view disappear in time
我有一個片段在單擊列表項以顯示有關該項目的詳細信息后開始。 根據項目,我希望在詳細信息片段中顯示或不顯示視圖。 我正在嘗試使用 DataBinding 和 LiveData 來設置 xml 中的可見性值。 但是,在我不想顯示視圖的情況下,視圖會在消失並將數據加載到片段之前短暫出現。 我怎樣才能使這個視圖默認不可見,或者讓它在它顯示之前消失。
如果在 Fragment 的onViewCreated
視圖設置為不可見,則可以在需要時將其設置為可見,以避免閃爍的視覺效果。
在您確實希望顯示它的情況下,如果從不可見開始,然后在片刻之后顯示它看起來很糟糕,您可能需要考慮從隱藏所有主視圖並顯示加載指示器(如進度輪)開始- 然后,一旦您加載了數據並決定需要顯示哪些視圖,您就可以隱藏進度輪並顯示正確的視圖。
這是一個簡單的示例,它會是什么樣子 - ViewModel 將決定顯示什么內容的決定發布給isLoaded
LiveData,然后 Fragment 相應地更新視圖可見性。
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
// ...
binding.textA.visibility = View.INVISIBLE
binding.textB.visibility = View.INVISIBLE
binding.progressBar.visibility = View.VISIBLE
viewModel.isLoaded.observe(this) { loadedA ->
binding.progressBar.visibility = View.GONE
if( loadedA ) {
binding.textA.visibility = View.VISIBLE
// show stuff for scenario A
}
else {
binding.textB.visibility = View.VISIBLE
// show stuff for scenario B
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.