6
votes

Dialogment d'écran complet (sur la barre d'action) dans Android

Je possède des problèmes dans la diffusion de dialogue en plein écran. Dans ma candidature, j'ai un fragment que lorsque vous cliquez sur un bouton, il appelle une boîte de dialogue. Mais le dialogue de dialogue remplit simplement la zone du fragment (sous la barre d'action). J'aimerais qu'il remplisse tout l'écran comme celui-là: http://img845.imageshack.us/ img845 / 8682 / myImage2.png

Toute aide? P>

     public class ItensActivity extends Fragment {
             ... 
            public void openDialogItens()
            {       
                dialog = new ItemDialog();      
                dialog.show(getFragmentManager(), "");
                getFragmentManager().executePendingTransactions();  

            }

            public static class ItemDialog extends DialogFragment
                {


                   @SuppressWarnings("deprecation")
                   @Override
                   public Dialog onCreateDialog(Bundle savedInstanceState) {
                      AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());        
                      builder.setView(getContentView());
                      Dialog dialog = builder.create();
                      dialog.setCanceledOnTouchOutside(true);
                      WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
                      lp.copyFrom(dialog.getWindow().getAttributes());
                      lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
                      lp.height = WindowManager.LayoutParams.FILL_PARENT;
                      dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
                      dialog.getWindow().setAttributes(lp);   
                      return dialog;
                  }

            private View getContentView() {
                   LayoutInflater inflater = getActivity().getLayoutInflater();
                   View view = inflater.inflate(R.layout.popup_item, null);
                   return view;
            }
            }    


4 commentaires

Je ne sais pas si je comprends ce que vous voulez, mais si vous voulez un fragment "plein écran", pourquoi utiliseriez-vous un dialogue? Utilisez plutôt un fragment normal.


C'est parce que je veux le montrer comme une popup / dialogue, montrant ce qui est dans son dos, quelque chose comme ça: i.stack.imgur.com/uv5jd.png . Mais le dialogue itelogment ne couvre pas la barre d'action


Alors ... vous ne voulez pas de boîte de dialogue FullScreen , mais une boîte de dialogue qui couvre partiellement votre barre d'action, non?


Si la boîte de dialogue serait appelée par l'activité principale, cela fonctionnerait. Mais par le fragment, ça ne le fait pas.


3 Réponses :


3
votes

Donc, après la recherche beaucoup, je n'ai trouvé de toute façon pas que le dialogue acheminer la barre de dialogue la barre d'action à l'aide de API 5. Mais je trouve une autre façon de faire cela en faisant le fragment appelant une nouvelle activité sur l'écran avec le thème de une boîte de dialogue. Cette solution m'aidez beaucoup, alors, je le partage ici: https://stackoverflow.com/a/12275009/2327056

@strikeforcezero à l'aide de l'idée d'un message de groupe Google, je pouvais le retirer coiffer une activité. vous voudriez modifier la hauteur et la largeur à une taille "dynamique" de votre choix de préférence. Puis défini tout ce que Boutons de barre d'action que vous souhaitez p>

public static void showAsPopup(Activity activity) {
    //To show activity as dialog and dim the background, you need to declare android:theme="@style/PopupTheme" on for the chosen activity on the manifest
    activity.requestWindowFeature(Window.FEATURE_ACTION_BAR);
    activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND,
            WindowManager.LayoutParams.FLAG_DIM_BEHIND);
    LayoutParams params = activity.getWindow().getAttributes(); 
    params.height = 850; //fixed height
    params.width = 850; //fixed width
    params.alpha = 1.0f;
    params.dimAmount = 0.5f;
    activity.getWindow().setAttributes((android.view.WindowManager.LayoutParams) params); 
    setContentView(R.layout.activity_main);
}


1 commentaires

Mettez ceci dans Dialogmentfragment Public Void Oncreate (Bundle SavedInstancestate) {Super.Oncreate (SavedInstanCetate); ce.setStyle (style_no_frame, android.r.style.theme_wallpaper); }



1
votes

Le moyen le plus simple que j'ai trouvé xxx


0 commentaires

0
votes

Vous pouvez signaler votre boîte de dialogue Fragmet pour utiliser la boîte de dialogue au lieu de fragments intégrés lors de l'appelant #Show. xxx

Ceci créera une boîte de dialogue sur la barre d'action et la barre d'état (que vous peut racheter manuellement si vous le souhaitez).


0 commentaires