【问题标题】:Implement Multi Select feature (Long press/Hold and select) in Ionic在 Ionic 中实现多选功能(长按/按住并选择)
【发布时间】:2018-10-15 15:50:03
【问题描述】:

我正在做一个有列表的 Ionic 项目。我想要一个多选功能就像 android 库中的按住和选择功能,以便在长按复选框时出现在列表项的前面,使我能够选择多个项目。

关于如何实施的任何建议?我不是在寻找 GalleryView 功能,只是长按并选择功能,就像它一样。

是否可以不创建实际的复选框?还是我需要创建复选框并实现暂停事件?

注意:对于是否要实现android图库功能感到困惑的人,请注意!我不想在这里实现 android 图库功能。我只想在简单列表上实现 MULTI-SELECT 功能,就像我们在 android 图库中长按选择多个图像一样,甚至以在联系人列表中选择多个联系人等为例。

【问题讨论】:

  • 您需要创建自己的画廊。
  • 不,我不是这个意思,我只需要像 android 库中那样的多选功能。
  • stackoverflow.com/questions/19585815/…。它适用于 java。
  • 试用 Ionic Framework 中的 FileChooser 组件
  • 请简要解释一下它对这个问题的作用......我之前没有尝试过

标签: android angular ionic-framework multi-select long-press


【解决方案1】:

试试这个 -

<ion-header>
<ion-navbar color="primary">
<ion-title>Notifications</ion-title>
<ion-buttons end *ngIf=selection>
  <button ion-button tappable (click)=disableSelect()>
    <ion-icon name="close" style="zoom:1.5;"></ion-icon>
  </button>
  </ion-buttons>
 </ion-navbar>
</ion-header>

<ion-content padding>
 <div *ngFor="let notification of notifications; let i=index" tappable text-wrap (click)=!selection?toggleGroup(i):selectItem(i,notification)
 (press)=selectItem(i,notification) [ngStyle]="{'background-color': notification.isSelected ? '#f2f2f2' : '#ffffff'}">
 </div>
</ion-content>

对于打字稿

export class NotificationPage {
notifications = new Array<Notification>();
selection: boolean = false;

constructor() {}

public selectItem(index: number, notification: Notification) {
   this.selection = true;
   notification.isSelected = !notification.isSelected;
   this.notifications[index] = notification;
 }

public unselectAll() {
   this.selection = false;
   this.notifications.forEach(notification => {
     notification.isSelected = false;
   });
  }
}

我使用了两个变量,第一个在名为isSelected 的模型类中。其目的是确定是否选择了特定项目。此外,项目样式是使用基于相同标志的[NgStyle] 完成的。第二个是在名为selected 的页面中。其目的是在选择项目后对 UI 进行必要的更改。

【讨论】:

  • 我会试试这个,同时你能简单解释一下你的代码背后的逻辑。如果我先检查它然后使用它会很有帮助。如果可能,请在您的答案中提供逻辑。谢谢
  • 我已经添加了一些解释,请检查一下。
  • 很快就会检查出来。谢谢
  • 如果我能检查与我的问题相关的关键部分会很好。通过查看整个代码来找出我需要的方法并不容易。
  • 我已经缩短了答案,请检查。现在这一次只有必要的条款。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 2021-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多