2016-08-11 97 views
2

我創建它使用對話框fragement它看起來像這樣默認情況下在DialogFragment中獲取邊距?

enter image description here

正如你可以看到我得到一個頂邊距其中didnt設置對話框片段上的應用程序,你可以從我的XML文件

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

<TextView 
    android:id="@+id/tv_title" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/str_add_drop" 
    android:textSize="@dimen/tv_title_font_size"/> 
<ImageButton 
    android:background="@null" 
    android:id="@+id/btn_close" 
    android:layout_width="12dp" 
    android:layout_height="12dp" 
    android:src="@drawable/ic_close" 
    android:layout_alignParentRight="true" 
    android:layout_alignTop="@id/tv_title" 
    android:layout_alignBottom="@id/tv_title" 
    android:layout_marginRight="5dp" 
    /> 
<EditText 
    android:id="@+id/et_drop" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/tv_title" 
    android:hint="@string/hint_et_drop" 
    android:padding="16dp" 
    android:inputType="textVisiblePassword"/> 

<DatePicker 
    android:id="@+id/bpv_date" 
    android:layout_width="match_parent" 
    android:layout_height="300dp" 
    android:layout_below="@id/et_drop"></DatePicker> 
<Button 
    android:id="@+id/btn_add_it" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_below="@id/bpv_date" 
    android:text="@string/str_add_it" 
    android:textAllCaps="false"/> 

</RelativeLayout> 

請告訴我爲什麼我得到這個保證金默認情況下,我該如何糾正這一點。

回答

1

請嘗試:

getWindow().requestFeature(Window.FEATURE_NO_TITLE); 

但之前的onCreate(的setContentView方法您的自定義對話框)方法。

+0

什麼是'getWindow()'我的計劃沒有按不認識它 –

+0

從哪裏訪問對話..?片段或活動..?嘗試這些:getActivity()。getWindow()....或getDialog()。getWindow().....或最後dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); – Pkosta

+0

我從Fragment子類訪問。我想我不能在片段上下文中使用'getWindow()' –

0

您可以參考這個Link我希望幫助你

0

沒有必要在你的對話框XML文件中的任何改變,只爲您的對話片段的風格。下面 的代碼將覆蓋無邊框整個活動:

RES /價值/ styles.xml

<resources> 
    ... 
    <!-- your dialog style --> 
    <style name="DialogFragment" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <item name="android:windowBackground">@color/white</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowIsFloating">true</item> 
     <item name="android:layout_gravity">center</item> 
     <item name="android:windowCloseOnTouchOutside">true</item> 
    </style> 
</resources> 

YourDialogFragment.java

public class YourDialogFragment extends DialogFragment implements View.OnClickListener 
{ 
    private Dialog mDialog; 

    @NonNull 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) 
    { 
     mDialog = new Dialog(getActivity(), R.style.DialogFragment); 

     WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(); 
     layoutParams.copyFrom(mDialog.getWindow().getAttributes()); 
     layoutParams.windowAnimations = R.style.SlideUpDownDialog; 

     final View view = View.inflate(getActivity(), R.layout.dialog_fragment_layout, null); 
     mDialog.getWindow().setAttributes(layoutParams); 
     mDialog.setContentView(view); 

     return mDialog; 
    } 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    { 
     View v = inflater.inflate(R.layout.dialog_fragment_layout, container, false); 

     mDialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); 

     return v; 
    } 

    ... 
}