我有一个使用GridLayoutManager的RecyclerView,每行有2个列。由于该开发是为了Android TV而进行的,因此我需要焦点进行导航。
如果我使用向下键导航到任何可见项,那么就可以正常工作。例如,Item 1-> Item 3-> Item 5-> Item 7(仅部分可见)。但是当我再次按下向下键时,焦点将移动到Item 10而不是9。
我的网格视图适配器如下:
public class GridAdapter extends RecyclerView.Adapter<GridAdapter.ViewHolder> {
private ArrayList<String> mDataset;
public GridAdapter(ArrayList<String> myDataset) {
mDataset = myDataset;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.grid_item, viewGroup, false);
ViewHolder vh = new ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.txtTitle.setText(mDataset.get(position));
}
@Override
public int getItemCount() {
return mDataset.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView txtTitle;
public ViewHolder(View v) {
super(v);
txtTitle = (TextView) v.findViewById(R.id.title);
}
}
}
你有什么想法来解决这个问题吗?谢谢。