Ich habe den Dialog erstellt (er hat einen Text bearbeiten, Button und Testview) wie folgt.Dismiss Dialog auf der Rücktaste gedrückt
class AskPhoneDialog:Dialog{
constructor(context: Context) : super(context) {}
var mContext:Context?=null
var dataManager:DataManager?=null
constructor(context: Context, themeResId: Int, dataManager: DataManager) : super(context, themeResId) {
this.mContext=context
this.dataManager=dataManager;
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.mobile_bottom_sheet_layout)
setUp()
}
private fun setUp() {
window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT)
window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE
}
}
den Dialog wie folgt aufrufen:
val askPhoneDialog= AskPhoneDialog(context, android.R.style.Theme_Material_Light_NoActionBar_Fullscreen,dataManager!!)
askPhoneDialog.show()
Ich versuche, den Dialog zu schließen, wenn der Zurück-Taste gedrückt wird. Wenn der Benutzer jedoch zuerst die Zurück-Taste drückt, blendet er die Tastatur aus. Wenn der Benutzer die Zurück-Taste erneut drückt, wird nur der Dialog beendet.
Erforderliche Ausgabe: Wenn der Benutzer zuerst die Zurück-Taste drückt, sollte er den Dialog zusammen mit der Tastatur schließen.
Ich habe versucht, die onBackPressed, onKeyDown, onKeyUp, onTochEvent -Methode von Dialog und übergeordnete Aktivität zu überschreiben, aber keine dieser Methoden trifft auf Back gedrückt.
versuchen Sie onBackPressed() in sich selbst unter bestimmten Bedingungen aufrufen, wie wenn Sie drücken und Softkeyboard sichtbar ist, dann rufen Sie onBackPressed() zweimal, so dass beim ersten Aufruf die Tastatur und auf der zweiten das Dialogfeld wird ausgeblendet. hoffe du bekommst mich –
Ich bin nicht in der Lage zu erkennen, welche Methode ruft, wenn der Benutzer zum ersten Mal auf die Schaltfläche zurück klickt. Aber es ist sicher, es ist nicht OnBackPressed() oder andere Methode in der Frage @NirmalPrajapat –
aufgelistet Wer die Frage abgelehnt hat, bitte den Grund kommentieren. SO, dass das nächste Mal, ich werde die Frage –