【发布时间】:2016-05-13 08:42:06
【问题描述】:
当我点击 FloatingActionButton 时,我在 Android 应用程序中显示了一个 DialogFragment。
现在,这是 DialogFragment 的 xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:focusable="true"
android:focusableInTouchMode="true">
<TextView
android:id="@+id/labelStartDate"
android:layout_width="150dp"
android:layout_height="150dp"
android:gravity="left|center"
android:padding="15dp"
android:text="@string/start_date"/>
<DatePicker
android:id="@+id/startDate"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:layout_toRightOf="@id/labelStartDate"
android:calendarViewShown="false"
android:datePickerMode="spinner"
android:endYear="2100"
android:startYear="1900"
>
</DatePicker>
<TextView
android:id="@+id/labelEndDate"
android:layout_width="150dp"
android:layout_height="150dp"
android:gravity="left|center"
android:padding="15dp"
android:layout_below="@id/labelStartDate"
android:text="@string/end_date"/>
<DatePicker
android:id="@+id/endDate"
android:layout_width="wrap_content"
android:layout_height="150dp"
android:calendarViewShown="false"
android:datePickerMode="spinner"
android:layout_toRightOf="@id/labelEndDate"
android:layout_below="@id/labelStartDate"
android:paddingTop="10dp"
android:endYear="2100"
android:startYear="1900"
>
</DatePicker>
......
</RelativeLayout>
在我的 Fragment 中,我以这种模式打开 DialogFragment:
FloatingActionButton button = (FloatingActionButton) v.findViewById(R.id.add_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertsDialogFragment dialog = AlertsDialogFragment.newInstance();
dialog.show(getActivity().getFragmentManager(),"");
}
});
现在,有了这段代码,我可以显示 Dialogfragment,但现在有两个问题:
1) 如果我显示对话框,然后单击视图上的另一点,对话框将被隐藏。 2)如果我点击第四个(例如)editText,我无法点击下一个EditText,我必须隐藏键盘,然后点击edittext...
编辑
【问题讨论】:
-
第 1 点指向
dialog.getDialog().setCanceledOnTouchOutside(false);以避免在外部触摸时关闭对话框并且您的第 2 点不清楚 -
对于第(1)点做
dialog.setCancelableOnTouchOutside(false); -
好的,如果我使用这个代码:dialog.getDialog().setCanceledOnTouchOutside(false),我固定了第一点
-
我有编辑,我的问题
标签: android view dialogfragment