I'm working on Android TV application where I have a recycler view. How can I set focus on wanted position? (I've already tried scrollToPosition and smoothScroller, but it doesn't work). Thanks in advance!
You have to call the setFocusable(true) and setFocusableInTouchMode(true) methods on the item view.
An example:
@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);
}
Edit:
You can try calling the
mRecyclerView.getChildAt(0).requestFocus();
method to focus a specific item. Just replace the 0 with the item index you want.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With