Cómo crear un DialogFragment personalizado al 100%

Quiero tener un diálogo de Android con Fragmentos que esté totalmente personalizado: no se incluyen ninguna de las piezas del tema de diálogo de la plataforma. Por ejemplo, algo como esto:

Captura de pantalla

¿Cómo hago esto?

El código siguiente le ayudará a mostrar el diálogo de pantalla completa y también establecer el color transparente

Dialog dialog = new Dialog(this); dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); // layout to display dialog.setContentView(R.layout.about_program_dialog_layout); // set color transpartent dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); dialog.show(); 

About_program_dialog_layout.xml

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#55000000" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" android:layout_marginBottom="227dp" android:text="Dismiss" /> <TextView android:id="@+id/autoCompleteTextView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/button1" android:layout_alignParentRight="true" android:layout_marginBottom="16dp" android:layout_marginRight="63dp" android:ems="10" android:text="Hello There World" /> </RelativeLayout> 

El siguiente Mono para Android C # código hace el truco (pero debe ser fácil de puerto a Java). He probado en Android 2.2 (Galaxy S) y Android 4.1 (Nexus 7). Lo único que necesitará cambiar son los ID de diseño utilizados para la vista principal y la vista de diálogo.

 [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"); } } 

Subí una versión completa de Mono para Android a https://github.com/t9mike/CustomDialogFragmentSample .

  • TaskCompletionSource y descartar causas que múltiples alertas personalizadas no aparecen
  • Interfaz de JavaScript de Monodroid
  • ¿Cómo funciona Mono para Android?
  • ¿Existe algún tipo de solución para desarrollar Blackberry Apps en C # como Mono para Android o Monotouch?
  • MonoDroid: Controlador de errores global
  • OnConfigurationChanged no se llama en mono android
  • HAXM de Android SDK desactivado después de instalar Hyper V
  • MarkerClick funciona pero InfoWindowClick no abre ViewModel
  • Monodroid - Monodevelop limpia los datos del usuario mientras se despliega en el dispositivo
  • HttpClient - Xamarin Android - MvvmCross
  • Cómo manejar las excepciones MonoDroid sin capturar globalmente y evitar que la aplicación se bloquee
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.