我正在创建一个DialogueFragment来显示日历,下面是Dialogue片段的代码,
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 for 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>
我的问题是Dialogue宽度跨越整个屏幕,我只想让它包装内容。
链接到屏幕截图
答案 0 :(得分: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);
}
答案 1 :(得分:0)
创建片段时,您将该片段分配给特定视图。设置视图以包装宽度。如果您使用主框架添加片段,只需在其上添加一个新视图,并使用约束来包装宽度。如果您不明白我的意思,请告诉我。
getFragmentManager().beginTransaction().add(R.id.fragment_frame, active, "").addToBackStack("").setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE).commit();
在add语句中,您定义了要放置片段的位置。在XML中创建一个fragment_frame,它具有包装内容的属性。