我有一个recyclerView
,希望在用户滚动时设置文本并更改TextView
的可见性。在用户停止滚动后,视图
应该显示一秒钟,然后停止。为此,我有一个RecyclerView.onScrollListener
。我的代码如下所示:
var scrollJob = Job()
var tempText = ""
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
super.onScrolled(recyclerView, dx, dy)
if (dx != 0 || dy != 0) {
val someText = // compute text from ViewHolder
scrollTextView.visibility = View.VISIBLE
if (someText != tempText) {
scrollTextView.text = someText
tempText = someText
}
}
}
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
when (newState) {
RecyclerView.SCROLL_STATE_SETTLING -> Log.d("TAG", "state: settling")
RecyclerView.SCROLL_STATE_IDLE -> {
scrollJob.cancel()
scrollJob = lifecycleScope.launch {
delay(1000)
scrollTextView.visibility = View.GONE
}
}
RecyclerView.SCROLL_STATE_DRAGGING -> scrollJob.cancel()
}
}
}
代码运行得很好,我只是在想,如果我不应该在onscrold
中做那么多事情,因为旧的手机可能会有这样的问题。scroll_state_dragging
的问题是,即使不需要也会调用它。
当然,您需要获得scrollTextView的可见性,如果不可见或消失,您将使它可见。如果已经可见,则不需要使其可见...
if (scrollTextView.getVisibility() != View.VISIBLE)
scrollTextView.visibility = View.VISIBLE
在每种情况下都做同样的,这将改善你的表现!
大家好,我有一个关于forloop和在forloop中将numericupdowns的可见性设置为true的问题。这就是我想要完成的: 这就是我想要做的: 这有可能吗?怎么做?事先谢谢你
我有一个布局,即MotionLayout,它必须为我定义了motionscene约束集开始和结束的FrameLayouts。并且它们是正确的动画。 然后,在这个动画框架布局下,我添加了两个文本视图,在单击时,我尝试隐藏一个,显示另一个,但两个都保持可见 重写有趣的onViewCreated(View:View,SavedInstanceState:Bundle?){super.onviewcrea
尝试使用自定义变量设置的可见性,但发生错误:。是否可以使用数据绑定设置视图可见性?多谢了。
在Enterprise Architect中,可以在特定的关系图中隐藏连接器。开发外接程序(扩展),我需要通过“代码”执行这样的动作,但是我找不到连接器/关系图类的相应属性。 如果有人能帮助找到设置连接器可见性的相关属性,我将不胜感激。
我有一个ViewPager与3片段。它们中的每一个都包含相同的视图,并且当片段对用户可见时,视图会动画。我重写setUserVisibleHint启动动画。当我滑动到片段时,视图仍然存在一秒钟,消失,然后开始动画。当视图不可见时,我想完全删除它们,当滑动到片段时,它们变得可见,动画开始。基本上,当参数为false时,我试图将它们隐藏在setUserVisibleHint中。这没什么用。即使片段不可
大家好,我对进度条有问题。我试着做一个画廊视图,所有的图像都显示在网格视图中。但问题是,当所有的图像都被加载时,进度条并没有消失,请检查我使用旋转加载作为进度条的代码 已更新 这是xml 请解决这个问题。