2016-04-16 2 views
1

J'essaie de faire apparaître un fragment de dialogue sur l'activité loginscreen sur un bouton qui a le formulaire de registre.Videfragment de dialogue dans xamarin

Je suis assez sûr que le dialogue s'ouvre mais je ne suis pas capable de le gonfler correctement.

lorsqu'un bouton est cliqué pour le DialogFragment quelque chose apparaît mais il est complètement vide, dans lequel j'attends une mise en page que j'ai créée pour le formulaire d'enregistrement.

J'ai lu le code vivement, je ne trouve pas le problème.

Voici mon DialogFragment

class dialog_fragment:DialogFragment 
{ 
    private Button btn; 
    public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     return base.OnCreateView(inflater, container, savedInstanceState); 

     var view = inflater.Inflate(Resource.Layout.Register, container, false); 

     btn = view.FindViewById<Button>(Resource.Id.btnRegister); 
     btn.Click += delegate 
     { 
      Toast.MakeText(this.Activity, "something", ToastLength.Long).Show(); 
     }; 
     return view; 
    } 
} 

Ce que j'inclus où je montre la boîte de dialogue

 btnRegister.Click += delegate 
     { 
      FragmentTransaction ft = FragmentManager.BeginTransaction(); 
      dialog_fragment signup = new dialog_fragment(); 
      signup.Show(ft,"dialog signup"); 
     }; 

la solution peut être très stupide, merci à l'avance

+0

où vous montrant la dialogfragment? –

Répondre

2

Vaibhav, comme vous étiez En attendant, la solution est bête mais cela arrive.

Vous avez un fragment de dialogue censé renvoyer une boîte de dialogue, mais malheureusement il y a deux retours dans la classe de dialogue.

votre solution ici.

pas étonnant qu'il ne retournera rien sur base.OnCreateView(inflater, container, savedInstanceState);

vous ne rencontrerez jamais la ligne var view = inflater.Inflate(Resource.Layout.Register, container, false);

enlever le retour avant base.OnCreateView()

class dialog_fragment:DialogFragment 
{ 
private Button btn; 
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    //return 
    base.OnCreateView(inflater, container, savedInstanceState); 

    var view = inflater.Inflate(Resource.Layout.Register, container, false); 

    btn = view.FindViewById<Button>(Resource.Id.btnRegister); 
    btn.Click += delegate 
    { 
     Toast.MakeText(this.Activity, "something", ToastLength.Long).Show(); 
    }; 
    return view; 
} 
} 
+0

merci Akshay J'ai tendance à sauter les mots-clés comme le retour c'était stupide. merci de remarquer celui-ci ici. –