【发布时间】:2015-03-22 02:00:42
【问题描述】:
我有一个带有 GridLayoutManager 的 RecyclerView,每行有 2 列。因为开发是针对 Android TV 的,所以我需要专注于导航。
如果我使用向下键导航到任何可见项目,那也没关系。例如,项目 1 -> 项目 3 -> 项目 5 -> 项目 7(仅部分可见。)。但是当我再次按下键时,焦点将移动到第 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);
}
}
}
知道如何解决这个问题吗?谢谢。
【问题讨论】:
-
你最终解决了这个问题吗?在过去的一两个月里,这一直困扰着我的生活。
-
不,我还没有找到任何解决方案。但它在我的应用程序中并不是很重要,所以我只是把它放在那里。希望有一天有人能解决这个问题。
-
导航文档这样说“Android 框架会根据布局中可聚焦元素的相对位置自动应用定向导航方案。”你能以某种方式在你的适配器中设置 nextFocusDown、nextFocusUp 等吗?
标签: android android-tv android-recyclerview