2016-04-22 72 views
0

我創建一個DialogueFragment到顯示壓延機的寬度,以下是用於對話片段的代碼,減少對話片段

public class DatePickerFragment extends DialogFragment{ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
//  setStyle(DialogFragment.STYLE_NO_TITLE, R.style.AppTheme); 
    } 

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

這此XML對於fragment_dialogue_datepicker

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"> 

    <DatePicker 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="5dp" 
     android:spinnersShown="false" 
     android:layout_gravity="center"/> 

</LinearLayout> 

我的問題是對話寬度跨越整個屏幕,我只是想要包裝內容。

鏈接截圖

http://imgur.com/iKJnhSK

+0

你能提供截圖和與你如何顯示對話框相關的代碼嗎?你是否從'DialogFragment'使用'public void show(FragmentManager manager,String tag)'? – NecipAllef

回答

0

嘗試在你的DialogFragment添加以下代碼:

@Override 
public void onStart() { 
    super.onStart(); 

    Window window = getDialog().getWindow(); 
    WindowManager.LayoutParams windowParams = window.getAttributes(); 
    window.setLayout(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
    window.setAttributes(windowParams); 
} 
+0

仍然變得相同大小 – kanduken

+0

然後嘗試添加此字符串dialog.getWindow()。setLayout(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT);在你展示你的對話之後。 –

0

當你創建你分配該片段特定視圖的片段。設置視圖以包裹寬度。如果您使用主框架來添加片段,只需在約束框的頂部添加一個新視圖並使用約束來包裝寬度。如果你不明白我的意思,請告訴我。

 getFragmentManager().beginTransaction().add(R.id.fragment_frame, active, "").addToBackStack("").setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).commit(); 

在add語句中,您定義了要放置片段的位置。在你的XML中創建一個fragment_frame,它具有包裝內容的屬性。

+2

我不明白你在說什麼 – kanduken

+0

查看上面的編輯! – fsebek