Ich habe eine RecyclerView mit GridLayoutManager, mit 2 Spalten pro Zeile. Weil die Entwicklung für Android TV ist, so dass ich den Fokus brauche, um zu navigieren.Seltsame Android RecyclerView (GridLayoutManager) Fokusverhalten
Es ist in Ordnung, wenn ich Schlüssel für alle sichtbaren Elemente navigieren mit nach unten. Zum Beispiel Punkt 1 -> Punkt 3 -> Punkt 5 -> Punkt 7 (nur teilweise sichtbar). Aber wenn ich Taste wieder nach unten drücken, wird der Fokus auf Punkt bewegen 10 statt 9.
Mein Rasteransicht Adapter ist:
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);
}
}
}
Jede Idee, wie dieses Problem zu lösen? Vielen Dank.
Haben Sie diese Lösung am Ende? Das hat mein Leben für die letzten ein oder zwei Monate durcheinander gebracht. – Dreamingwhale
Nein, ich habe noch keine Lösung gefunden. Aber es ist nicht sehr kritisch in meiner Anwendung, also habe ich es einfach dort behalten. Hoffe, dass jemand das Problem eines Tages lösen kann. –
Die Navigationsdokumente sagen Folgendes: "Das Android-Framework wendet automatisch ein direktionales Navigationsschema an, das auf der relativen Position von fokussierbaren Elementen in Ihren Layouts basiert." Kannst du das nextFocusDown, nextFocusUp, etc. irgendwie in deinem Adapter einstellen? – Elrond