Poniższy kod Mono dla systemu Android C# robi lewę (ale powinno być łatwe do przeniesienia do Javy). Testowałem w systemie Android 2.2 (Galaxy S) i Android 4.1 (Nexus 7). Jedyną rzeczą, którą musisz zmienić, są identyfikatory układu używane do widoku nadrzędnego i widoku okna dialogowego.
[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");
}
}
wysłał pełną Mono dla Androida próbki do https://github.com/t9mike/CustomDialogFragmentSample.
Dzięki. Po przekonwertowaniu na java zrobiłem to dla mnie. Musiałem zmienić WRAP_CONTENT na MATCH_PARENT, aby okno dialogowe wyświetlało się na pełnym ekranie. – speedynomads
Dzięki za przesłanie Github – Signcodeindie