Problem with list_dialog in combination with an already presented view
Kluesi last edited by Kluesi
I want to present a view with a tiny little ui design. I use a dialogs.list_dialog to choose between options at the beginning. Everything works fine. Now I want to put this in a loop. The ui is visible, I choose the option, I do anything and when I finish this part I want to show the list_dialog again. But at the second time I get the Message: The view is already beeing presented. I analyzed some combinations and I see that everytime the ui.on_screen is true, the dialog comes up with the error message. If it is false everything is fine. It is false when I press the cross button of the ui. Then I come to the dialog again and the view ist not ui.on_screen.
Now the question. How can I close the ui in the script so that ui.on_screen is false? ui.close and ui.View.close(v) does it not. When I close the view, ui.on_screen is already true.
cvp last edited by
@Kluesi Not sure I correctly understand (as usual with my poor English 😢)
import dialogs def l(items): f = dialogs.list_dialog(items=items) return f while True: items = ['one','two'] f = l(items) print(f) if f == None: break
Please post your code
Kluesi last edited by
Thats funny. I worked on this code many hours and right after I posted the problem I found the solution. After v.close() I put v.wait_modal() and then it works. It seems that the close process is not completely done when the next command is interpreted. Wait modal waits until the view is completely closed. May be a workaround but for me it is ok.
cvp last edited by cvp
@Kluesi that's how dialogs.xxxxx_dialog does...