Ich versuche, eine AlertDialog
mit einem benutzerdefinierten view
(kein Titel oder Fußzeile) und abgerundeten Ecken zu bauen. Ich habe viele Posts darüber gesehen, wie das geht, und ich habe viele Dinge ausprobiert, aber ich kann es nicht so bauen, wie ich es möchte.Android: AlertDialog mit benutzerdefinierten Ansicht und abgerundeten Ecken
Das ist mein Ziel:
ich für die dialog
eine drawable
erstellt dialog_background.xml genannt:
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid
android:color="#FFAAAAAA" />
<stroke
android:width="2dp"
android:color="#FF000000" />
<corners android:radius="20dp" />
</shape>
Und ich fügte eine style
, es zu benutzen:
<style name="MyDialog" parent="@android:style/Theme.Dialog">
<item name="android:background">@drawable/dialog_background</item>
</style>
Die layout
meiner benutzerdefinierten view
wird zwei Tasten haben. Im Moment zeige ich Ihnen eine leere LinearLayout
um es einfach zu machen. Dies ist playdialog.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
style="@style/MyDialog"
>
</LinearLayout>
Um die Dialog
zu bauen Ich benutze einen DialogFragment
. Dies ist seine onCreateDialog
Funktion:
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.playdialog, null));
return builder.create();
}
Ok, wenn ich den Code so verwende ich diese:
ich den dialog
Hintergrund transparent zu modifizieren meinen DialogFragment
Code zu setzen versucht:
Das Ergebnis ist genau das gleiche, also habe ich festgestellt, dass das weiße Rechteck u meine dialog
ist von meiner Gewohnheit view
, nicht von der dialog
. Ich setze bereits meinen view
Hintergrund auf dialog_background.xml, also kann ich es auch nicht auf transparent setzen oder ich verliere die Ecken, die Farbe, etc.
Dann habe ich beschlossen, den dialog
Hintergrund mit zu ändern dialog_background.xml und meine Ansicht hat eine einfarbige Farbe als Hintergrund.
In meiner benutzerdefinierten view
layout
(playdialog.xml) I ersetzt style = "@ style/MyDialog" mit:
android:background="#FFAAAAAA"
Und dann in meiner DialogFragment
habe ich diesen Code:
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.playdialog, null));
**NEW**
Dialog d = builder.create();
d.getWindow().setBackgroundDrawableResource(R.drawable.dialog_background);
return d;
}
Das ist, was ich bekomme:
Es ist fast das, was ich wollte, aber Sie können meine benutzerdefinierten view
Grenzen sehen, so dass es nicht gut genug ist. An diesem Punkt wusste ich nicht, was ich noch tun könnte.
Wer weiß, wie kann ich es lösen?
Danke!
könnten Sie das Problem beheben? Mit abgerundete Ecke, ich bin nicht in der Lage, die weißen Abschnitte in der corder – sabbir