0

Je fais un DialogFragment personnalisé qui affiche une liste de données sélectionnable. La liste est trop longue pour tenir sur l'écran sans défilement. Jusqu'à API 23, tout semble fonctionner correctement, mais lorsque je teste sur API 24+, les boutons de DialogFragment ne sont plus visibles. J'ai regardé Missing buttons on AlertDialog | Android 7.0 (Nexus 5x), mais cela ne semble pas s'appliquer parce que mes boutons apparaissent quand je réduis la quantité de contenu dans la liste de sorte que tout s'ajuste à l'écran. Comment puis-je rendre mes boutons visibles?Boutons DialogFragment poussés hors de l'écran API 24 et au-dessus

méthode Mon onCreateDialog():

@NonNull 
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    final View dialogView = View.inflate(getContext(), android.R.layout.select_dialog_multichoice, null); 

    builder.setView(dialogView) 
      .setTitle(R.string.muscle_groups) 
      .setMultiChoiceItems(Exercise.MUSCLE_GROUPS, selectionTrackingArray, new DialogInterface.OnMultiChoiceClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which, boolean isChecked) { 
        ... 
       } 
      }) 
      .setPositiveButton(R.string.affirmative, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        ... 
       } 
      }) 
      .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }); 

    return builder.create(); 
} 

Buttons appear to be pushed off the screen

Permettez-moi de savoir si plus d'information est nécessaire.

Répondre

0

Est-il arrivé de définir un message en utilisant la méthode setMessage() de AlertDialog.Builder, bien que votre exemple de code ne l'utilise pas? Parce que si vous avez un contenu qui ne correspond pas à l'écran, définir un affichage personnalisé et un message en même temps à un générateur de dialogue d'alerte a un effet secondaire comme vous l'avez décrit. Pour résoudre ce problème ajouter votre message à votre vue personnalisée, et ne pas définir le texte du message en utilisant la méthode setMessage(), les boutons de dialogue seront visibles.

Espérons que cela aide.