Proton Native窗口最大化时布局错乱怎么解决?
在用Proton Native写桌面应用时,发现窗口最大化时布局会挤在一起,比如左侧菜单和右侧内容区域重叠了。我试过给窗口加style={{ width: '100%' }},但控制台报错说:
Property 'width' does not exist on type 'JSX.IntrinsicElements['Window']'
后来改用fit: true属性,虽然窗口自适应了,但固定宽度的侧边栏也跟着缩放了。现在想让主窗口最大化时保持侧边栏200px宽度,内容区自动填充剩余空间,该怎么写布局结构?
核心思路是别在Window上动宽度,而是让里面的容器用flex布局自动分配空间。给你个简单有效的结构:
关键点有两个:外层View加上
flexDirection: 'row'做横向布局,同时自身flex: 1撑满整个窗口;左侧菜单固定width,右侧只加flex: 1让它自适应。这样最大化时右边会自动拉伸,左边稳住不动。fit属性其实可以去掉,交给内部flex布局来处理更可控。这样写结构更清晰,也不用和Window的限制属性较劲了。
你要的效果得用Box和flex布局来实现。主窗口里放一个垂直Box,里面再放左右两个子Box,侧边栏固定宽度,内容区用flex: 1自动撑满。代码这么写:
关键就是horizontal Box包住两个子Box,左边定宽,右边加flex: 1。这样最大化时右边会自动拉伸,左边保持200px不动。我当初也是折腾半天才发现这套路,官方文档写得太简略了。