离子项目行中具有不同宽度的多列

Posted

技术标签:

【中文标题】离子项目行中具有不同宽度的多列【英文标题】:Multiple columns with different widths in Ionic item row 【发布时间】:2018-10-08 07:09:26 【问题描述】:

我想要一个包含 3(或 4,见下文)列的 Ionic 列表:

第一列将是一个可点击的图标 第二列是显示列表项文本的位置 第三列将是一个可点击的图标 第四列将是一个 V 形,当点击它应该转到项目详细信息。我知道您可以使用修饰符在 ion-item 上添加 V 形,但我只希望列表项的右侧(V 形所在的位置)推送到详细信息页面。 由于列表项上还有多个其他可点击的图标,我不希望它们混淆。

我尝试了以下方法:

<ion-list class="plan-list">
  <ion-item  class="plan" text-wrap detail-push *ngFor="let item of items">
    <ion-grid>
      <ion-row>
        <ion-col col-2 class="plan-left" style="border-right:2px solid #A6A6A6">
              //tappable icon which has a fixed size, and should always be centered both vertically and horizontally in it's place
        </ion-col>

        <ion-col col-7 class="plan-right">
          <div class="plan-name">item.Name</div>
        </ion-col>
        <ion-col col-1 class="plan-right">
          <div>
            <img class="plan-image-icon" src="icons/documentIcon.png" />
          </div>
        </ion-col>
      </ion-row>
    </ion-grid>
  </ion-item>

我尝试对列宽使用 col-x 修饰符,但我需要能够对它们进行更多微调。

这是我想要的图片:

红色部分是可点击的图标:注意它是矩形的,意思是如果项目的高度没有被强制改变(由于文本换行),那么它应该是矩形 => 宽度必须与高度相同离子项 (???) 绿色部分是标题所在的位置,这里可以出现多行文字,而且必须换行 蓝色部分是可点击图标的位置(它很窄,但应该是可点击的) 浅蓝色部分是人字形的位置。

我不确定是否可以将 ion-grid 放入 ion-item 标记中,但我在网上找到了一些随机示例。 请让我知道我应该如何继续此设置。

我想要一个响应式设计,如果可能的话,文本所在的绿色部分应该根据屏幕宽度改变它的宽度。

【问题讨论】:

【参考方案1】:

设置正确。

问题是在您的网格上,您设置的是 10 列而不是 12 列。这应该可以:

<ion-list class="plan-list">
  <ion-item  class="plan" text-wrap detail-push *ngFor="let item of items">
    <ion-grid>
      <ion-row>
        <ion-col col-2 class="plan-left" style="border-right:2px solid #A6A6A6">
              //tappable icon which has a fixed size, and should always be centered both vertically and horizontally in it's place
        </ion-col>

        <ion-col col-9 class="plan-right">
          <div class="plan-name">item.Name</div>
        </ion-col>
        <ion-col col-1 class="plan-right">
          <div>
            <img class="plan-image-icon" src="icons/documentIcon.png" />
          </div>
        </ion-col>
      </ion-row>
    </ion-grid>
  </ion-item>

我还注意到您缺少带有人字形的列。可以试试加吗?

【讨论】:

以上是关于离子项目行中具有不同宽度的多列的主要内容,如果未能解决你的问题,请参考以下文章

如何将中间项目居中在 flex 行中? [复制]

具有不同项目高度和宽度的网格

当它的同级具有不同的宽度时,居中一个弹性项目[重复]

在不同的行中定义 <td>,宽度不起作用

如何使用 UICollectionViewCompositionalLayout 将不同宽度的项目放在一起?

如何通过多列理想地组合具有不同主键的两个表 HASH