HarmonyOS 鸿蒙Next 自定义单选框Radio选中后布局变化原因

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 自定义单选框Radio选中后布局变化原因

自定义单选框Radio,为什么选中之后,布局就发生变化,见截图

选中前

cke_1284.png

选中后, 会比其他选项高

cke_1783.png

export class MyRadioStyle implements ContentModifier<RadioConfiguration> {
item: string = ‘’;

constructor(itemStr: string) { this.item = itemStr } applyContent(): WrappedBuilder<[RadioConfiguration]> { return wrapBuilder(buildRadio) } }

@Builder function buildRadio(config: RadioConfiguration) { Button((config.contentModifier as MyRadioStyle).item) .controlSize(ControlSize.SMALL) .opacity(config.checked ? 1 : 0.4) .onClick(() => { if (config.checked) { config.triggerChange(false) } else { config.triggerChange(true) } }) }

@Entry @Component struct refreshExample { private list: string[] = [‘选项1’, ‘选项2’, ‘选项3’, ‘选项4’];

build() { Column({ space: 50 }) { Flex({ direction: FlexDirection.Row, wrap: FlexWrap.Wrap, alignItems: ItemAlign.Start, justifyContent: FlexAlign.Start }) { ForEach(this.list, (item: string, index: number) => { Radio({ value: ‘styleRadio’ + index, group: ‘styleRadioGroup’ }) .contentModifier(new MyRadioStyle(item)) .checked(false) }, (item: string) => item) }

}

} }<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

3 回复
有人帮忙看一下吗,谢谢

HarmonyOS 鸿蒙Next 自定义单选框Radio选中后布局变化,通常是由于以下几个原因导致的:

  1. Radio组件属性设置:检查Radio组件的width、height、margin、padding等属性设置,确保在选中状态下这些属性的变化不会导致布局错乱。
  2. 布局容器影响:单选框Radio通常被放置在某种布局容器(如Row、Column、Flex等)中。容器的对齐方式、方向、间距等属性会影响Radio的布局。确保容器属性设置合理,避免在Radio选中时产生布局变化。
  3. 动态样式调整:如果在Radio的onChange事件中动态修改了样式,确保这些样式调整不会导致布局问题。
  4. 屏幕适配问题:不同设备的屏幕尺寸和分辨率可能导致布局差异。确保布局能够自适应各种屏幕尺寸。

针对以上原因,逐一排查并调整相关属性或代码,通常可以解决单选框Radio选中后布局变化的问题。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部