RecyclerView项目专注于Android TV

时间:2018-12-13 15:19:27

标签: android android-tv leanback

我正在使用Android TV的{​​{1}}应用程序。如何将重点放在想要的位置上? (我已经尝试过recycler viewscrollToPosition,但是不起作用)。预先感谢!

1 个答案:

答案 0 :(得分:0)

您必须在项目视图上调用setFocusable(true)setFocusableInTouchMode(true)方法。

一个例子:

@NonNull
@Override
public ProgrammeAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rv_item_programme, parent, false);
    view.setFocusable(true);
    view.setFocusableInTouchMode(true);

    sDefaultBackgroundColor = ContextCompat.getColor(parent.getContext(), android.R.color.transparent);
    sSelectedBackgroundColor = Color.parseColor("#66ffe680");

    updateEPGTitleRowBackgroundColor(view, false);

    view.setOnFocusChangeListener(mOnFocusChangeListener);
    view.setOnKeyListener(mOnKeyListener);

    return new ViewHolder(view);
}

修改:

您可以尝试致电

mRecyclerView.getChildAt(0).requestFocus();

聚焦特定项目的方法。只需将0替换为所需的项目索引即可。