2015-03-19 15 views
5

Sto usando DialogFragment nel mio progetto e I'am disabilitando il titolo utilizzandocome rimuovere il titolo da DialogFragment?

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

ma la mia finestra è diventato storto. Voglio lasciare il dialogo così com'è e rimuovere il titolo. Come posso fare?

<?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> 

ho capito che quando rimuovo dialogo titolo non può trovare match_parent

+0

stai chiamando getDialog() getWindow() requestFeature (Window.FEATURE_NO_TITLE) ; in onCreateDialog o onCreateView? –

risposta

10

è necessario sovrascrivere il metodo onCreateDialog nella classe dialogfragment.

@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; 
    } 
+1

questo aiutato! Ho appena modificato MATCH_PARENT> WRAP_CONTENT –

+0

Sì, ho controllato accuratamente e ho notato. senza dubbio), e grazie! –

13

Io di solito l'override onCreate nella sottoclasse l' miei DialogFragment e chiamo setStyle(STYLE_NO_TITLE, 0);

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

Here è possibile trovare la documentazione per setStyle. La documentazione per STYLE_NO_TITLE dice:

Stile per setStyle (int, int): non includere un'area del titolo.

+0

sì, funziona anche. ma la mia finestra di dialogo continuava a essere storta, dopo aver pulito Tittle. –

+0

puoi pubblicare uno screenshot? – Blackbelt

+0

questo è quello che voglio vedere http://joxi.ru/V2VGo47FML7PAv questo è quello che ottengo http://joxi.ru/nAyegk1FVvEWAZ –

0

È possibile implementare è il modo più semplice come sottostante Codice -..

Dialog dialog = new Dialog(mContext, android.R.style.Theme_Black_NoTitleBar); 

o

Dialog dialog = new Dialog(mContext, android.R.style.Theme_Black_NoTitleBar_Fullscreen);

Problemi correlati