Horizo​​ntalScrollView 以编程方式滚动而没有焦点

Posted

技术标签:

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

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

scrollView.fullScroll(HorizontalScrollView.FOCUS_RIGHT)

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

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

【问题讨论】:

【参考方案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 宽度有问题。就我而言,我可以忽略这个过度滚动,但也许有人知道问题出在哪里。

【讨论】:

以上是关于Horizo​​ntalScrollView 以编程方式滚动而没有焦点的主要内容,如果未能解决你的问题,请参考以下文章

DrawerLayout 与 Horizo​​ntalScrollView 进入内容菜单

Horizo​​ntalScrollView 中的自定义视图不滚动

是否可以使用 ScrollView 和 Horizo​​ntalScrollView 实现对角滚动?

Horizo​​ntalScrollView 隐藏其子视图

Horizo​​ntalScrollView:添加新视图时自动滚动到结束?

Android studio自动horizo​​ntalscrollview无限滚动直到结束然后重复