Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to remove title from DialogFragment?

I am using DialogFragment in my project and I'am disabling the Title using

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

but my dialog has become crooked. I want to leave the dialog as it is and just remove Title. How can I do?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"
                 android:orientation="vertical" android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:background="#ff2d35ff">


     <LinearLayout
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginRight="39dp"
         android:layout_marginLeft="39dp"
         android:layout_gravity="center_horizontal"
         android:background="#ff6cff23">

         <LinearLayout
             android:orientation="horizontal"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:layout_gravity="center_horizontal">

             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="ItemName"
                 android:id="@+id/itemName"
                 android:layout_weight="1"
                 android:background="#ffd861ff"/>

             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:text="ItemPrice"
                 android:id="@+id/itemPrice"
                 android:layout_weight="1"
                 android:background="#ff2ff8ff"/>
     </LinearLayout>

     <ImageView
         android:layout_width="100dp"
         android:layout_height="100dp"
         android:id="@+id/itemImage"
         android:layout_gravity="center_horizontal"/>

     <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="some test"
         android:id="@+id/textView9"
         android:layout_gravity="center_horizontal"/>

     <LinearLayout
         android:orientation="horizontal"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         android:layout_gravity="center_horizontal"
         android:background="#ffffff2c">

         <Button
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="-"
             android:id="@+id/itemMinus"
             />

         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:text="1"
             android:id="@+id/textView11"
             android:layout_weight="1"
             android:gravity="center_horizontal"/>

         <Button
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="+"
             android:id="@+id/itemPlus"/>
     </LinearLayout>

 </LinearLayout>

 <LinearLayout
     android:orientation="horizontal"
     android:layout_width="match_parent"
     android:layout_height="fill_parent"
     android:layout_gravity="center_horizontal"
     android:gravity="center_horizontal">

     <ImageButton
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:id="@+id/itemAdd"
         android:src="@drawable/positive"
         android:background="@android:color/transparent"/>

     <ImageButton
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:id="@+id/itemCancel"
         android:src="@drawable/negative"
         android:background="@android:color/transparent"/>
 </LinearLayout>

I realized that when I remove Title dialog can not found match_parent

like image 427
Pavel Petrashov Avatar asked Mar 19 '15 08:03

Pavel Petrashov


2 Answers

I usually override onCreate in my DialogFragment's subclass and call setStyle(STYLE_NO_TITLE, 0);

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setStyle(STYLE_NO_TITLE, 0);
}

Here you can find the documentation for setStyle. The documentation for STYLE_NO_TITLE says:

Style for setStyle(int, int): don't include a title area.

like image 54
Blackbelt Avatar answered Oct 06 '22 11:10

Blackbelt


you must override onCreateDialog method in your dialogfragment class.

@Override
   public Dialog onCreateDialog(final Bundle savedInstanceState) {
      RelativeLayout root = new RelativeLayout(getActivity());
      root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
      final Dialog dialog = new Dialog(getActivity());
      dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
      dialog.setContentView(root);
      dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
      dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);

      return dialog;
   }
like image 37
msevgi Avatar answered Oct 06 '22 11:10

msevgi