У меня просто была похожая проблема, и я нашел хорошее решение для нее в ionic 4, используя слоты ion-item.
<ion-item lines="full">
<ion-icon slot="start" name="at" (click)="iconClicked()"></ion-icon>
<ion-label slot="start" (click)="labelClicked()">
This is a separately clickable label
</ion-label>
<ion-checkbox slot="end"></ion-checkbox>
</ion-item>
Объяснение
- Элементы в слоте
start
ion-item
не запускаются при установке флажка.
- Слот
start
по умолчанию не имеет нижней границы, поэтому его необходимо установить, добавив lines="full"
к ion-item
;
Имейте в виду, что основной слот по-прежнему отображается с большой шириной. Это может привести к некоторому скрытому контенту. В этом случае это можно исправить с помощью CSS-твика, подобного этому.
ion-item ion-label {
overflow: visible;
}