본문 바로가기

Flutter

Flutter [.mapIndexed()] method

 Flutter를 사용해서 개발을 하다보면 Iterable 클래스의 .map() 메서드를 리스트의 항목을 매핑하는데 유용하게 사용한다.

그런데 .map() 메서드는 대상 리스트의 항목만 파라미터로 받아오는데, 가끔 파라미터에 index도 있으면 편할 것 같은 상황이 있다. 예를 들면 특정 인덱스에 해당하는 항목에만 속성을 부여하고 싶을 때이다.

그럴 땐 collection.dart 파일을 import 하면 .mapIndexed() 메서드를 사용할 수 있다.

 

import 'package:collection/collection.dart';
images.mapIndexed((index, element) => Padding(
        padding: EdgeInsets.only(
          right: index == images.length - 1 ? 0 : 8.0
        ),
       ...

예를 들면 마지막 항목에는 패딩을 주기 싫을 때

 

https://api.flutter.dev/flutter/package-collection_collection/IterableExtension/mapIndexed.html

 

mapIndexed method - IterableExtension extension - collection library - Dart API

Iterable mapIndexed (R convert(int index, T element ) ) Maps each element and its index to a new value. Implementation Iterable mapIndexed (R Function(int index, T element) convert) sync* { var index = 0; for (var element in this) { yield convert(index++,

api.flutter.dev