leafer-ui icon indicating copy to clipboard operation
leafer-ui copied to clipboard

flow布局中如果设置了autoWidth或者autoHeight如何获取真实宽度

Open bedphp opened this issue 5 months ago • 3 comments

flow布局使用了autoWidth,发现width和boxBounds都获取的宽度为120,真实宽度为960

bedphp avatar Jul 29 '25 13:07 bedphp

正常通过width和boxBounds.width可以获取到真实宽度,可能是有地方主动设置了一次width造成的,可以强制设置flow.width = undefined, 再获取

leaferjs avatar Jul 29 '25 14:07 leaferjs

正常通过width和boxBounds.width可以获取到真实宽度,可能是有地方主动设置了一次width造成的,可以强制设置flow.width = undefined, 再获取

结构是这样的

 <Frame id="root" class="back" root>
        <Box flow="x">
            <Box width="960" height="1080" flow="y" flowAlign="center" padding="10">
                <Text autoWidth="1">玩家信息</Text>
                <Box class="head_panel all_bg" flow="x" flowAlign="center" autoWidth="1" padding="15" gap="10">
                    <Rect class="head" fill="$js:({type:'image',url:'./assets/panel/img/head.png'})" />
                    <Box flow="y" autoHeight="1" gap="-10" flowAlign="center">
                        <Text fontSize="35">nick</Text>
                        <Text fontSize="35">#TAGTAG</Text>
                    </Box>
                    <Box flow="y" flowAlign="center">
                        <Text fontSize="25" textAlign="center">测试</Text>
                        <Box flow="x" flowAlign="center">
                            <Image url="./assets/panel/duo.png" width="50" height="50" />
                            <Text fontSize="30">otto</Text>
                        </Box>
                    </Box>
                </Box>
            </Box>
        </Box>
    </Frame>

bedphp avatar Jul 29 '25 14:07 bedphp

正常通过width和boxBounds.width可以获取到真实宽度,可能是有地方主动设置了一次width造成的,可以强制设置flow.width = undefined, 再获取

不行,今天试了一下,如果把flow的width设置null的话获取的话只能是内容的宽度,但是我这个给三等分了,也就是三个元素都设置了autoWidth,但是获取的width只有80,我的父元素的width设置了800

bedphp avatar Aug 04 '25 08:08 bedphp