Ionic4:在一行中包含多个控件(输入和复选框)的列表项
Ionic4: List item with multiple controls (inputs and checkbox) on one line
我有以下代码可以在一行中显示多个控件(标签、2 个输入和复选框)
<ion-list>
<ion-item>
<ion-label slot="start">1</ion-label>
<ion-input col-6></ion-input>
<ion-input col-6></ion-input>
<ion-checkbox slot="end"></ion-checkbox>
</ion-item>
</ion-list>
在 Android 上它运行良好,但在 iOS 上我有意外行为:当我点击复选框时,系统试图打开键盘但没有显示,所以我得到了一个免费的space 页面底部:
如何解决此问题,或者您知道如何在一行中显示多个控件的另一种方式?
构建该布局的更好方法是使用 rows and columns。
这是视图的代码:
<ion-header>
<ion-toolbar>
<ion-title>Home</ion-title>
</ion-toolbar>
</ion-header>
<ion-content class="ion-padding">
<ion-row *ngFor="let row of rows">
<ion-col>
<ion-label>{{ row }}</ion-label>
</ion-col>
<ion-col>
<ion-input></ion-input>
</ion-col>
<ion-col>
<ion-input></ion-input>
</ion-col>
<ion-col>
<ion-checkbox></ion-checkbox>
</ion-col>
</ion-row>
</ion-content>
然后我设置了一些样式来设置第一列和最后一列的宽度:
ion-row {
ion-col {
display: flex;
align-items: center;
justify-content: center;
&:first-child {
flex-basis: 16px;
flex-shrink: 0;
flex-grow: 0;
}
&:last-child {
flex-basis: 32px;
flex-shrink: 0;
flex-grow: 0;
}
}
}
在演示中,输入有一些背景信息,以便更容易了解它们的宽度。
我有以下代码可以在一行中显示多个控件(标签、2 个输入和复选框)
<ion-list>
<ion-item>
<ion-label slot="start">1</ion-label>
<ion-input col-6></ion-input>
<ion-input col-6></ion-input>
<ion-checkbox slot="end"></ion-checkbox>
</ion-item>
</ion-list>
在 Android 上它运行良好,但在 iOS 上我有意外行为:当我点击复选框时,系统试图打开键盘但没有显示,所以我得到了一个免费的space 页面底部:
如何解决此问题,或者您知道如何在一行中显示多个控件的另一种方式?
构建该布局的更好方法是使用 rows and columns。
这是视图的代码:
<ion-header>
<ion-toolbar>
<ion-title>Home</ion-title>
</ion-toolbar>
</ion-header>
<ion-content class="ion-padding">
<ion-row *ngFor="let row of rows">
<ion-col>
<ion-label>{{ row }}</ion-label>
</ion-col>
<ion-col>
<ion-input></ion-input>
</ion-col>
<ion-col>
<ion-input></ion-input>
</ion-col>
<ion-col>
<ion-checkbox></ion-checkbox>
</ion-col>
</ion-row>
</ion-content>
然后我设置了一些样式来设置第一列和最后一列的宽度:
ion-row {
ion-col {
display: flex;
align-items: center;
justify-content: center;
&:first-child {
flex-basis: 16px;
flex-shrink: 0;
flex-grow: 0;
}
&:last-child {
flex-basis: 32px;
flex-shrink: 0;
flex-grow: 0;
}
}
}
在演示中,输入有一些背景信息,以便更容易了解它们的宽度。