【问题标题】:HorizontalScrollView programmatically scroll without focusHorizo​​ntalScrollView 以编程方式滚动而没有焦点
【发布时间】:2021-08-19 10:49:17
【问题描述】:

我开发 Android TV 应用程序并有一个自定义视图,看起来像带有 TextView 子项的 Horizo​​ntalScrollView。 当我按下某个按钮时,Horizo​​ntalScrollView 必须在左/右目的地滚动长子文本。 但是当我打电话时

scrollView.fullScroll(HorizontalScrollView.FOCUS_RIGHT)

horizo​​ntalScrollView 请求焦点在自己身上,因此按钮松散焦点因为只能同时关注一个视图。

如何在不请求焦点的情况下以编程方式滚动 Horizo​​ntalScrollView,以使按钮不会失去焦点?

【问题讨论】:

    标签: android android-tv horizontalscrollview


    【解决方案1】:

    我用 ObjectAnimator 找到了一些解决方案。 只需为 scrollX 值设置动画即可。

    fun scrollTo(scrollDestination: ScrollDestinations) {
            val targetXScroll = when(scrollDestination) {
                ScrollDestinations.START -> 0
                ScrollDestinations.END -> mTextView.width
            }
    
            val animator = ObjectAnimator.ofInt(mScroll, "scrollX", targetXScroll)
            animator.apply {
                duration = 100
                start()
            }
        }
    

    在此快照中,mScroll 是带有 mTextView 子项的 Horizo​​ntalScrollView。 ScrollDestinations 只是枚举。

    但在我的情况下,当我在“正确”目的地滚动时,它有一些过度滚动,可能是 TextView 宽度有问题。就我而言,我可以忽略这个过度滚动,但也许有人知道问题出在哪里。

    【讨论】:

      猜你喜欢
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多