style studio match_parent full developers android android-dialogfragment

match_parent - full screen dialog android studio



Pantalla completa de DialogFragment (10)

En DialogFragment siguientes trabajos. En onCreateView() agregue lo siguiente

getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { //… getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); //… return view; }

Estoy tratando de crear un DialogFragment con un ancho de MATCH_PARENT para que el diálogo sea casi a pantalla completa (dejando el relleno alrededor de los bordes para el aspecto flotante). He visto esta solución en pantalla completa DialogFragment en Android, pero estoy tratando de evitar el truco de establecer el ancho a 1000dp. Con mi diseño actual, ya sea que use FILL_PARENT o MATCH_PARENT parece que está configurando el ancho y la altura en WRAP_CONTENT.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >

He utilizado esta solución para Dialog (no DialogFragment) y funciona como se esperaba:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);


En mi código, quería un cuadro de diálogo de pantalla completa, pero aún muestro la barra de notificaciones en la parte superior de la pantalla, así que estoy usando:

setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Black_NoTitleBar);

Esto lo hace en pantalla completa, pero no estoy usando un estilo de pantalla completa, por lo que mantengo la barra de notificaciones.

Espero que ayude a alguien!


Esto es perfecto para mí. cuando se extiende la anulación de onCreateView() ... impulsa toda la lógica

El diálogo lo hace en pantalla completa, solo anula este método.

@Override public Dialog onCreateDialog(final Bundle savedInstanceState) { // the content final RelativeLayout root = new RelativeLayout(getActivity()); root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); // creating the fullscreen dialog final Dialog dialog = new Dialog(getActivity()); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(root); dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.YELLOW)); dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); return dialog; }


He respondido a esta pregunta con una explicación, esta es la forma más rápida y eficiente. Por favor revisa este hilo

Espero que esto ayude :)


La mejor solución que encontré fue establecer el ancho o minWidth en un valor arbitrariamente grande para asegurar que llena la pantalla. No me gusta esta solución, pero no he visto nada mejor.


Para tener un diálogo de pantalla completa, necesitas usar

public class CustomDialogFragment extends DialogFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout to use as dialog or embedded fragment return inflater.inflate(R.layout.purchase_items, container, false); } @Override public Dialog onCreateDialog(Bundle savedInstanceState) { Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); return dialog; } }

Y para mostrar este diálogo:

CustomDialogFragment newFragment = new CustomDialogFragment(); FragmentManager fragmentManager = getSupportFragmentManager(); // To make it fullscreen, use the ''content'' root view as the container // for the fragment, which is always the root view for the activity fragmentManager.beginTransaction().add(android.R.id.content, newFragment).commit();

ATENCIÓN : No puede usar el siguiente código para mostrar el cuadro de diálogo; si no, el cuadro de diálogo se mostrará en el centro de la pantalla, no en pantalla completa.

//don''t show dialog like this newFragment.show(fragmentManager, "dialog");


También puedes hacer algo como-

@Override public void onCreate(@Nullable final Bundle savedInstanceState) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { setStyle(STYLE_NO_TITLE, android.R.style.Theme_Material_Light_NoActionBar_Fullscreen); } else { setStyle(STYLE_NO_TITLE, android.R.style.Theme_DeviceDefault_Light_NoActionBar); } super.onCreate(savedInstanceState); }

Con esto también podrás ver la barra de estado coloreada para las versiones> = lollipop


esta respuesta me ayuda ¿ Cómo configurar el ancho y la altura de DialogFragment?

int width = activity.getResources().getDisplayMetrics().widthPixels; int height = activity.getResources().getDisplayMetrics().heightPixels; content.setLayoutParams(new LinearLayout.LayoutParams(width, height));


intente cambiar a RelativeLayout en lugar de LinearLayout. Funciono en mi caso


public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NO_TITLE,android.R.style.Theme_Holo_Light); }