ici verticalGridView (VG) va remplir certaines données. Le VG reçoit la mise au point sur la touche D-Pad en haut / bas, cela fonctionne bien. Mais le problème est que lorsque l'accent est mis sur l'élément Zeroth dans la grille et que l'utilisateur appuie sur la mise au point de Keyup D-Pad doit être défini sur l'une des visions en dehors de VG, qui est LL_Exit (ID mentionné dans le fichier XML), mais la mise au point actuellement n'est pas. aller à ladite vue. Gentiment laissez-moi savoir comment je résolvez ce problème.
J'ai essayé de configurer Android: NextFocusup = "@ id / ll_exit" mais il ne bouge pas et essayé dans le niveau d'activité pour implémenter la méthode OnKeyUp comme ci-dessous P> < Pré> xxx pré>
Mais ici, le problème est quand je suis au 1er élément de VG et appuie soudainement la touche de touche, il ira à la vue que j'ai besoin de cibler. C'est ll_exit vue dans le fichier XML p>
3 Réponses :
Essayez d'ajouter les attributs XML suivants à la vue Linearlayout LL_EXIT
android:focusable="true" android:focusableInTouchMode="true"
J'ai essayé en ajoutant ces attributs dans le fichier XML, mais il n'est inutile. Le problème est que la mise au point est de la vue extérieure à l'adaptateur de la vue Recycler, mais si je veux recevoir la concentration sur la vue extérieure sur la touche, appuyez sur, il ne se passe pas
Mettez le code que vous avez publié dans la méthode OnKeyUp dans la méthode ONKEYDOWN au lieu de l'embarras. Cela pourrait fonctionner.
Manières possibles:
essayez de régler la linearlayout ll_toolbar vers ou essayer: p> si aucune solution ne fonctionne, il suffit de verticalgridview comme ça p> public class SampleVerticalGridView extends VerticalGridView implements FocusInterceptor{
private static final String TAG = "SampleVerticalGridView";
private View focusUp;
private View focusDown;
// constructors and stuff
...
public void setNextFocusViews(View focusUp, View focusdown) {
this.focusUp = focusUp;
this.focusdown = focusdown;
}
@Override
public View focusSearch(View focused, int direction) {
if (direction == View.FOCUS_UP && focusUp != null) {
return focusUp;
} else if (direction == View.FOCUS_DOWN && focusDown != null) {
return focusDown;
}
return super.focusSearch(focused, direction);
}
...
}
Essayez d'ajouter les attributs XML suivants au VG
app:focusOutEnd="true" app:focusOutFront="true"