Целевая средняя колонка из гибкой сетки 3 на 3 в реактивном - PullRequest
0 голосов
/ 26 сентября 2019

Я хотел добавить marginLeft и marginRight в сетку FlatList 3 на 3, но у меня возникают трудности при попытке найти правильный способ выбора среднего столбца элементов в динамическом списке по еготекущий индекс итерации.(0-> N)

Шаблон среднего столбца будет 1,4,7,10,13 ... и так далее.Таким образом, это общая разница 3 между каждым числом.Математическая формула для этого будет a + d(n−1) в соответствии с математической страницей, которую я нашел.

Мне нужно добавить эту логику в renderItem FlatLists, я пытался использовать index % 2 или index % 3, но я не смог получить хороший результат из этого.

Этомой код:

         <TouchableOpacity
            onPress={ () => this._handleImagePress(this.state.pictures, index - 1) }
            style={ [
                styles.photoItem,
                (index % 2) ? styles.pixelMarginRight : '']
            }>
            <FastImage
                style={ styles.image }
                source={{
                    uri: item.url,
                    priority: FastImage.priority.high,
                }}
                resizeMode={FastImage.resizeMode.cover}
            />
        </TouchableOpacity>
    );

Есть идеи, как мне этого добиться?

Спасибо

1 Ответ

1 голос
/ 26 сентября 2019

По вашей формуле Tn = a+ d(n-1) - это формула для получения терминов в арифметической прогрессии, поэтому, если мы предположим, что index - это действительные термины, которые отличаются, как вы сказали тогда, первый член a = 1, общая разница d = 3 так как мы знаем Tn = index, то все, что нам нужно, это искать n из формулы и, используя необработанную формулу, мы разлагаем n на множители, то есть перемещаем a в левую часть уравнения, которое у нас есть Tn - a = dn -d, если мы снова переходим -d слева от уравнения мы имеем Tn-a+d = dn, теперь нам нужно только заменить реальными значениями, которые мы определили выше, что приводит к (index - 1 + 3) = 3n (index +2) = 3n, и мы можем затем заключить, что для индекса будеттермин в упомянутой арифметической прогрессии тогда n больше всего будет положительным действительным числом, которое может произойти, только если остаток, когда выражение (index+2) % 3 равно нулю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...