I recently dual-booted my Asus Zenbook UX480 with Elementary OS Hera and I am very happy with it in general. I tried plugging in a second monitor with HDMI and it doesn't quite work as it should. As I understand it, it swaps between mirrored and extended mode automatically and constantly. First, the laptop screen is normal and the second monitor is black. Then, the laptop monitor goes black for a split second and then both screens turn on. Less than a second later, it goes back to only the laptop screen. After much frustration from it flashing back and forward, I have discovered that keeping CTRL held down stops the switch and it stops on either one or two monitors. From there, I can enter the screen settings and enter the one I want. However, when I release CTRL, it starts flashing back and forward again. To my surprise, it doesn't flash and behaves just as it should sometimes, but after a restart of my PC, it is back. I am thinking it could be some kind of graphics drivers, or settings that is wrongly configured. For the record, when I boot into my Win10 instead, it works just fine. If I can't fix this soon, it'll probably have to be another kind of linux that'll be my go-to, which is a shame since I love elementary for everything else.
Try setting them manually using xrandr. First identify the IDs of your monitors by just running it from a commandline
You should see the names such as eDP-1, DP-1-1 etc. Then run the commands to set them as you wish, for example:
$ xrandr --output eDP-1 --auto --output HDMI-1 --mode 1920x1080
That will default automatic resolution to eDP (normally laptop display) and fullhd for an external display named HDMI-1
This will turn off one display:
$ xrandr --output HDMI-1 --off --output HDMI-2 --auto
There's a good wiki about xrandr here