2015-03-19 54 views
5

我用我的項目DialogFragment和我'使用如何從DialogFragment中刪除標題?

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

禁用的冠軍,但我的對話已變得扭曲。我想離開對話框,只是刪除標題。我能怎麼做?

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

我意識到,當我刪除標題對話框無法找到match_parent

+0

你叫getDialog()getWindow()requestFeature(Window.FEATURE_NO_TITLE) ;在onCreateDialog或onCreateView? – 2015-03-19 09:00:44

回答

10

您必須重寫dialogfragment類中的onCreateDialog方法。

@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

這有幫助!我剛剛更改了MATCH_PARENT> WRAP_CONTENT – 2015-03-19 09:19:10

+0

是的,我仔細檢查並注意。毫無疑問),並且謝謝你! – 2015-03-19 09:25:37

13

我通常覆蓋的onCreate我DialogFragment的子類,並調用setStyle(STYLE_NO_TITLE, 0);

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

Here可以找到setStyle的文檔。 STYLE_NO_TITLE的文檔說:

樣式爲setStyle(int,int):不包含標題區域。

+0

是的,它也可以。但在我清理Tittle之後,我的對話仍然顯示出歪斜。 – 2015-03-19 09:01:10

+0

你可以發佈截圖嗎? – Blackbelt 2015-03-19 09:02:34

+0

這是我想看到http://joxi.ru/V2VGo47FML7PAv 這是我得到http://joxi.ru/nAyegk1FVvEWAZ – 2015-03-19 09:09:26

0

您可以實現更簡單的方式如下面的代碼 - 。

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

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