Ich habe AlertDialog
in meiner Aktivität ein einfaches gemacht :
View view = layoutInflater.inflate(R.layout.my_dialog, null);
AlertDialog infoDialog = new AlertDialog.Builder(MyActivity.this)
.setView(view)
.create();
infoDialog.show();
Mit dem obigen Code wird der Dialog in der Mitte des Bildschirms angezeigt.
Ich frage mich, wie ich die Dialogposition so anpassen kann, dass sie direkt unter der oberen Aktionsleiste angezeigt wird. (Gibt es sowieso eine Möglichkeit, die Schwerkraft oder etwas im Dialog zu ändern?) Und wie geht das basierend auf meinem Code?
Antworten:
Ich habe diesen Code verwendet, um den Dialog am unteren Bildschirmrand anzuzeigen:
Dieser Code verhindert auch, dass Android den Hintergrund des Dialogfelds bei Bedarf dimmt. Sie sollten in der Lage sein, den Schwerkraftparameter zu ändern, um den Dialog zu verschieben
quelle
wlp.x
undwlp.y
Felder die Position des Dialogfelds auf dem Bildschirm explizit festzulegen. Ich habe es nicht selbst versucht, aber es sollte wahrscheinlich funktionieren.Sie können Ihren Dialog basierend auf der Schwerkraft und den Layoutparametern anpassen. Ändern Sie die Schwerkraft und die Layoutparameter entsprechend Ihren Anforderungen
quelle
'FILL_PARENT'
ist veraltet. Ich bin auf API 21. Wie von Developer ReferenceIch habe dieses Code-Snippet aus dem @ gypsicoder-Code hier gefunden
Hier ist der Wert der x-Position Pixel von links nach rechts. Für y ist der Positionswert von unten nach oben.
quelle
Für mich hat das ziemlich gut geklappt, als ich versucht habe, meinen Dialog genau am unteren Rand der Textansicht zu positionieren, wo er ausgewählt wird.
quelle
Neu
BottomSheetDialog
:quelle
Fügen Sie dies einfach Ihrem Code hinzu:
quelle
quelle
Für meine Dialogaktivität habe ich diese verwendet:
quelle
Ich benutze diese Methode
quelle
benutze bottomSHeet:
quelle
quelle