Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make DialogFragment width to Fill_Parent

I am working on an android application where I am using DialogFragment to display the dialog but its width is very small. How I can make this width to fill_parent to it ?

public class AddNoteDialogFragment extends DialogFragment {      public AddNoteDialogFragment() {         // Empty constructor required for DialogFragment     }      @Override     public View onCreateView(LayoutInflater inflater, ViewGroup container,             Bundle savedInstanceState) {         getDialog().setTitle(getString(R.string.app_name));         View view = inflater.inflate(R.layout.fragment_add_note_dialog,                 container);          return view;     }       @Override     public Dialog onCreateDialog(Bundle savedInstanceState) {         Dialog dialog = super.onCreateDialog(savedInstanceState);          // request a window without the title         dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);          return dialog;     } } 

fragment_add_note_dialog.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:background="@android:color/white"     android:orientation="vertical"     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin" >      <EditText         android:id="@+id/addNoteEditText"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:gravity="top"         android:hint="@string/clock_enter_add_note"         android:imeOptions="actionDone"         android:inputType="textCapSentences|textMultiLine"         android:lines="5" />      <Button         android:id="@+id/submit"         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:layout_marginTop="10dp"         android:background="@drawable/login_button"         android:text="@string/submit_button"         android:textColor="@android:color/white" />  </LinearLayout> 

like image 974
N Sharma Avatar asked Jun 02 '14 08:06

N Sharma


People also ask

How do I make alert dialog fill 90% of screen size?

According to Android platform developer Dianne Hackborn in this discussion group post, Dialogs set their Window's top level layout width and height to WRAP_CONTENT . To make the Dialog bigger, you can set those parameters to MATCH_PARENT . Demo code: AlertDialog.

How do I destroy DialogFragment?

tl;dr: The correct way to close a DialogFragment is to use dismiss() directly on the DialogFragment. Control of the dialog (deciding when to show, hide, dismiss it) should be done through the API here, not with direct calls on the dialog. Dismiss the fragment and its dialog.


Video Answer


2 Answers

This is the solution I figured out to handle this issue:

@Override public Dialog onCreateDialog(Bundle savedInstanceState) {     Dialog dialog = super.onCreateDialog(savedInstanceState);         dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);      return dialog; }  @Override public void onStart() {     super.onStart();      Dialog dialog = getDialog();     if (dialog != null) {        dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));     } } 

Edit:

You can use the code below in onCrateView method of Fragment before return the inflated view.

getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
like image 152
savepopulation Avatar answered Sep 29 '22 18:09

savepopulation


Have you tried using the answer of Elvis from How to make an alert dialog fill 90% of screen size?

It is the following:

dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT); 

Update:

Above code should be added inside onStart() method of the DialogFragment.

like image 30
EpicPandaForce Avatar answered Sep 29 '22 18:09

EpicPandaForce