选定项目更改时,在BrowseFragment中禁用动画

时间:2017-10-20 14:00:50

标签: android-tv

我想在选择项目时禁用BrowseFragment项目的默认动画,即缩放动画和位置变化。我希望这些物品保持原样,并且在选择时不会改变它们的尺寸。

到目前为止,我在ListRowPresenter对象上尝试了各种各样的操作,例如将OnItemViewSelectedListene设置为null但没有成功效果。

我怎样才能做到这一点? (我正在使用leanback库的第26版)

1 个答案:

答案 0 :(得分:0)

您可以通过将ZOOM_FACTOR_NONE传递给ListRowPresenter的构造函数,将动画的缩放系数设置为none。

ListRowPresenter有一个构造函数来控制动画(focusZoom)。

来自documentation

ListRowPresenter(int focusZoomFactor)

使用给定参数构造ListRowPresenter。

参数

focusZoomFactor int:控制项目视图聚焦时使用的缩放系数。 ZOOM_FACTOR_NONE,ZOOM_FACTOR_SMALL,ZOOM_FACTOR_XSMALL,ZOOM_FACTOR_MEDIUM,ZOOM_FACTOR_LARGE之一焦点上的暗淡默认为禁用。

示例:

ArrayObjectAdapter adapter = 
        new ArrayObjectAdapter(new ListRowPresenter(ZOOM_FACTOR_NONE));
setAdapter(adapter);

ArrayObjectAdapter rowAdapter =
        new ArrayObjectAdapter(new MyCardViewPresenter(getContext()));

HeaderItem header = new HeaderItem("Header Title");
ListRow row = new ListRow(header, rowAdapter);

for (Video video : videos) {
     rowAdapter.add(video);
}
adapter.add(row);