Android TV中的持久标题片段(禁用动画)(leanback)

问题描述 投票:2回答:1

任何人都知道如何在标题中实现这个问题?目标是避免导致标题栏消失的动画,因为Leanback应用程序在单击标题后放大行项目。

BrowseSupportFragment的setHeadersState没有帮助。也许与在OnHeaderClickedListener期间劫持startHeadersTransitionInternal有关?如果是这样,任何想法如何正确实现它?

android-tv leanback
1个回答
0
投票

所以这个问题的问题在于转换是由startHeadersTransitionInternal方法处理的,它是包私有的。因此,在大多数情况下都无法覆盖它。但是,因为它只是私有包而不是私有私有,所以你可以做到这一点。

首先,在应用程序中创建一个包,其名称与BrowseSupportFragment相同。然后在该包中创建一个扩展BrowseSupportFragment的类,并在没有实现的情况下覆盖有问题的方法。看起来像这样:

package android.support.v17.leanback.app; // Different for AndroidX

public class HackyBrowseSupportFragment extends BrowseSupportFragment {

    @Override
    void startHeadersTransitionInternal(boolean withHeaders) {
        // Do nothing. This avoids the transition.
    }
}

然后,你不是扩展BrowseSupportFragment,而是扩展HackyBrowseSupportFragment

需要注意的是,我发现后退按钮将不再重新聚焦其中一行的标题,因此您必须手动执行此操作。除此之外,似乎工作得很好。

© www.soinside.com 2019 - 2024. All rights reserved.