Il seguente codice Mono per Android C# fa il trucco (ma dovrebbe essere facile portarlo su Java). Ho provato su Android 2.2 (Galaxy S) e Android 4.1 (Nexus 7). L'unica cosa che dovresti cambiare sono gli ID di layout usati per la vista padre e la finestra di dialogo.
[Activity (MainLauncher = true)]
public class TestCustomDialogActivity : FragmentActivity
{
public class MyDialogFragment : Android.Support.V4.App.DialogFragment
{
public override Android.Views.View OnCreateView(Android.Views.LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
// Android 3.x+ still wants to show title: disable
Dialog.Window.RequestFeature(WindowFeatures.NoTitle);
// CHANGE TO YOUR DIALOG LAYOUT or VIEW CREATION CODE
return inflater.Inflate(Resource.Layout.MyLayout, container, true);
}
public override void OnResume()
{
// Auto size the dialog based on it's contents
Dialog.Window.SetLayout(LinearLayout.LayoutParams.WrapContent, LinearLayout.LayoutParams.WrapContent);
// Make sure there is no background behind our view
Dialog.Window.SetBackgroundDrawable(new ColorDrawable(Color.Transparent));
// Disable standard dialog styling/frame/theme: our custom view should create full UI
SetStyle(Android.Support.V4.App.DialogFragment.StyleNoFrame, Android.Resource.Style.Theme);
base.OnResume();
}
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// CHANGE TO YOUR MAIN SCREEN
SetContentView(Resource.Layout.MyDialog);
var dialog = new MyDialogFragment();
dialog.Show(SupportFragmentManager, "dialog");
}
}
Ho caricato un Mono completa per il campione Android per https://github.com/t9mike/CustomDialogFragmentSample.
Grazie. Una volta convertito in Java, questo è stato il trucco per me. Ho dovuto modificare WRAP_CONTENT in MATCH_PARENT per visualizzare la finestra di dialogo a schermo intero. – speedynomads
Grazie per Github upload – Signcodeindie