How do you adjust the layout in portrait mode? You said you wanted active area
What Cocos is doing is mantaining the Height, because you have set Fit Height to true. I think that what you want is to Fit Width
If you set both Fit Height and Fit Width, you may have distortion, but the canvas will always be shown entirely.
A more complex approach would be to change the Resolution Policy in your script, depending on your orientation, refer to http://docs.cocos.com/creator/api/en/classes/Canvas.html#fitheight.
cc.Canvas.instance.fitHeight = false;
cc.Canvas.instance.fitWidth = true;
Are you developing for web or native? You can also check http://docs.cocos.com/creator/api/en/classes/View.html#setresizecallback
I haven’t tested this function to change the resolution policy,but it should work
But I think there is no need to you change the policy by script. It is easier to use Widgets, and, by what you want, use fixed Width instead of fixed heigth. Please, refer to http://docs.cocos.com/creator/manual/en/ui/. Auto fit for multi-resolution