【问题标题】:Android TV RowsFragment - Can't disable row dimming effectAndroid TV RowsFragment - 无法禁用行变暗效果
【发布时间】:2017-02-07 12:22:58
【问题描述】:

我有一个扩展 RowsFragment 的片段,无论我尝试什么,我都无法禁用未选中行的调光效果(第一张图片)。

Can't disable the dimming of unselected rows

这是我的代码:

public class MainFragment extends RowsFragment {
private static final String TAG = MainFragment.class.getSimpleName();

private ArrayObjectAdapter mRowsAdapter;
private static final int GRID_ITEM_WIDTH = 300;
private static final int GRID_ITEM_HEIGHT = 200;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    Log.i(TAG, "onActivityCreated");
    super.onActivityCreated(savedInstanceState);

    loadRows();

}

private void loadRows() {
    mRowsAdapter = new ArrayObjectAdapter(new ListRowPresenter(FocusHighlight.ZOOM_FACTOR_LARGE, false));


    HeaderItem cardPresenterHeader = new HeaderItem(1, "CardPresenter");
    CardPresenter cardPresenter = new CardPresenter();
    ArrayObjectAdapter cardRowAdapter = new ArrayObjectAdapter(cardPresenter);


    for(int i=0; i<10; i++) {
        Movie movie = new Movie();
        movie.setTitle("title" + i);
        movie.setStudio("studio" + i);
        cardRowAdapter.add(movie);
    }

    mRowsAdapter.add(new ListRow(cardPresenterHeader, cardRowAdapter));
    mRowsAdapter.add(new ListRow(cardPresenterHeader, cardRowAdapter));

    setAdapter(mRowsAdapter);

}

无论我尝试什么更改或组合(使用 useFocusDimmer 标志,尝试使用 BrowseFragment 等)我都无法得到我正在寻找的结果。

我得到的最接近的是更改为 VerticalGridFragment 和 Presenter,但缺少此功能,它仅类似于我想要完成的任务(第二张图片)。

Example of how I want it to look

提前致谢,

【问题讨论】:

    标签: android android-fragments android-tv


    【解决方案1】:

    您必须将RowsFragmentRowPresenter 子类一起使用。在 RowPresenter 子类中,您可以定义自定义选择动画或尝试调用setSelectEffectEnabled

    文档摘录:

    当用户滚动行时,片段将启动动画 并使用浮点值调用 setSelectLevel(Presenter.ViewHolder, float) 介于 0 和 1 之间。默认情况下,RowPresenter 在 未选中视图的行视图顶部。子类可以 通过使用 isUsingDefaultSelectEffect() 覆盖此默认效果 返回 false 并覆盖 onSelectLevelChanged(ViewHolder) 以应用 不同的选择效果。

    调用 setSelectEffectEnabled(boolean) 来启用/禁用选择 效果,这不仅会启用/禁用默认的暗淡效果,而且 子类也必须尊重这个标志。

    【讨论】:

    • 哇 setSelectEffectEnabled(boolean) 几乎解决了我的问题!现在我正在尝试更改 RowHeader 文本颜色。我试过这样做:stackoverflow.com/questions/41780279/… 但没有一个对我有帮助。
    • 在您引用的 SO 链接中查看我的答案,希望对您有所帮助
    • 谢谢!确实如此,尽管我不得不更改一行
    • @DannyOfir 你是如何改变标题的文本颜色的?当阴影未启用时,它实际上会使标题颜色变暗,这就是为什么颜色会发生变化但由于黑色渐变而无法清晰显示的原因。有什么解决办法吗?
    猜你喜欢
    • 2019-04-30
    • 2021-06-10
    • 2021-08-28
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多