2015-03-19 22 views
5

Tôi đang sử dụng DialogFragment trong dự án của tôi và I'am vô hiệu hóa Tiêu đề sử dụnglàm thế nào để loại bỏ tiêu đề từ DialogFragment?

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

nhưng thoại của tôi đã trở thành quanh co. Tôi muốn rời khỏi hộp thoại như hiện tại và chỉ cần xóa Tiêu đề. Làm thế nào tôi có thể làm được?

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

tôi nhận ra rằng khi tôi loại bỏ hộp thoại Tiêu đề không thể tìm thấy match_parent

+0

Bạn có gọi getDialog() GetWindow() requestFeature (Window.FEATURE_NO_TITLE) ; trong onCreateDialog hoặc onCreateView? –

Trả lời

10

bạn phải ghi đè lên phương thứcCreateDialog trong lớp hộp thoại của bạn.

@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

điều này đã giúp! Tôi vừa thay đổi MATCH_PARENT> WRAP_CONTENT –

+0

Có, tôi đã kiểm tra kỹ lưỡng và lưu ý. không có nghi ngờ), và cảm ơn bạn! –

13

tôi thường ghi đè onCreate trong lớp con DialogFragment 's của tôi và gọi setStyle(STYLE_NO_TITLE, 0);

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

Here bạn có thể tìm tài liệu cho setStyle. Tài liệu cho STYLE_NO_TITLE nói:

Kiểu dành cho setStyle (int, int): không bao gồm khu vực tiêu đề.

+0

có nó cũng hoạt động. nhưng hộp thoại của tôi vẫn hiển thị quanh co, sau khi tôi làm sạch Tittle. –

+0

bạn có thể đăng ảnh chụp màn hình không? – Blackbelt

+0

đây là những gì tôi muốn xem http://joxi.ru/V2VGo47FML7PAv đây là những gì tôi nhận được http://joxi.ru/nAyegk1FVvEWAZ –

0

Bạn có thể thực hiện là cách đơn giản như dưới đây mã -..

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

hoặc

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

Các vấn đề liên quan