Forgive me if this doesn't help, but it's what I'm thinking.
I'm not sure if this will even work (unsure if you can swap sources) like this on width changed... but onCompleted should be ok?
It may get you experimenting / thinking differently to get a solution.
http://doc.qt.io/qt-5/qml-qtquick-loader.html#source-prop
Loader {
id: container
anchors.fill: parent
// setSource on Loader Component complete
Component.onCompleted: { doSetSource(); }
}
Connection { target: container; onWidthChanged: { doSetSource(); } }
function doSetSource(){
if(container.width < 320) {
container.setSource("ViewSmall.qml");
...