Ich habe ein benutzerdefiniertes Dialogfeld, das im Prinzip funktioniert, es wird jedoch nur dann ausgeblendet, wenn Sie weit vom Dialogfeld entfernt klicken. Wenn ich sehr nah an den Dialog klicke, aber immer noch außerhalb (z. B. 30px von der Kante), passiert nichts ... der Dialog wird nicht geschlossen.dialogFragment wird nicht geschlossen, wenn man nahe an die Kante klickt
Ich sehe, dass dies auch auf einem grundlegenden alertDialog auftritt, der keine Anpassung verwendet. Soweit ich das beurteilen kann, ist dies eine Standard-Android-Sache. Liege ich falsch? Gibt es einen Grund dafür?
Es ist eine Eigenschaft .setCanceledOnTouchOutside(); Änderungen, die sich auf das Klicken bei entferntem Klicken auswirken, wie erwartet, haben jedoch keinen Einfluss auf die oben beschriebene Situation.
Die Dialogklasse:
public class Filters_DialogFragment extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.filters_dialog, container, false);
getDialog().setTitle("Simple Dialog");
// FYI, this has no affect on clicking very close to the dialog edge.
getDialog().setCanceledOnTouchOutside(true);
return rootView;
}
}
Der Dialog Layout:
<?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="#333333">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="FILTERS"
android:textColor="#ffffff" />
<SeekBar
android:id="@+id/seekBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Funktion in meiner Tätigkeit Aufruf Dialog:
private void showFiltersDialog() {
FragmentManager fm = getSupportFragmentManager();
Filters_DialogFragment dialogFragment = new Filters_DialogFragment();
dialogFragment.show(fm, "Sample Fragment");
}
Update: OP wurde ein beschreibendes Bild hinzugefügt. Ich habe auf meinem echten Gerät getestet, und es ist genau wie der Emulator. Auch, hat ein neues Projekt mit nur einem grundlegenden alertDialog, und das gleiche Problem existiert. Ist es ein Problem? – MarsAndBack
Hast du gerade versucht setCancelable? https://developer.android.com/reference/android/app/DialogFragment.html#setCancelable(boolean) –
Ich habe versucht, SetCancelable zu wechseln, aber es scheint keine Auswirkungen auf das Klicken-außerhalb-zu-entlassen haben. Unabhängig davon, in OP, kann ich den Dialog schließen ... nur nicht durch Klicken auf den Rand des Dialogs. – MarsAndBack