Клонирование пользовательского интерфейса Amazon с помощью React Native #3: Меню выдвижных ящиков — Крисс

Это руководство является третьей и последней частью нашего клонирования пользовательского интерфейса Amazon с использованием React Native. В предыдущей части мы успешно реализовали галерею основных моментов и раздел рекомендаций. Эта часть урока является продолжением того, на чем мы остановились в предыдущей части. Поэтому рекомендуется пройти предыдущую часть для полного понимания и развития всего проекта.

Как упоминалось в предыдущих частях, эта серия руководств была вдохновлена Шаблон React Native Eccomerce который помогает нам создавать отличные и мощные готовые к развертыванию приложения электронной коммерции, которые каждый может использовать для создания стартапов электронной коммерции или продажи шаблонов приложений. И эта часть также является продолжением реализации кодирования и дизайна из видеоурока Youtube от Неуверенный программист для клона пользовательского интерфейса Amazon. Пользовательский интерфейс приложения Amazon упрощает для пользователей мгновенный и эффективный переход к различным экранам благодаря улучшенным параметрам меню.

В этой части мы собираемся реализовать меню ящика с настраиваемыми пунктами меню. Идея состоит в том, чтобы начать с реализации меню ящика, которое настраивается навигатором ящиков, который мы реализовали в первой части этого урока. Затем мы настроим стиль меню ящика и его элементы в соответствии с потребностями фактического пользовательского интерфейса.

Итак, начнем!!

Открытие и закрытие меню ящика

В первой части этой серии руководств мы помним, что добавили значок гамбургера меню в левую часть строки меню. Теперь на этом шаге мы собираемся добавить событие к значку меню, которое помогает открывать и закрывать меню ящика. Для этого нам нужно добавить onPress событие для Icon компонент, имеющий значок меню. в onPress событие Icon компонент, мы собираемся добавить openDrawer() метод, предоставленный navigation prop, который вызовет открытие и закрытие меню ящика. Общая реализация кода для этого раздела представлена ​​во фрагменте кода ниже:

<Left style={{flexDirection: 'row'}}>
  <Icon
    onPress={() => this.props.navigation.openDrawer()}
    name="md-menu"
    style={{color: 'white', marginRight: 15}}
  />
  <FAIcon name="amazon" style={{fontSize: 32, color: 'white'}} />
</Left>

Следовательно, мы получим следующий результат на экране нашего эмулятора:

Как мы видим, мы успешно реализовали открытие и закрытие меню ящика. Но меню не содержит стиля, только простой фон со ссылкой для навигации на главном экране. Итак, теперь мы добавим стиль в меню ящика, чтобы оно выглядело так же, как в реальном пользовательском интерфейсе приложения Amazon.

Настройка стиля ящика

На этом этапе мы собираемся настроить стиль ящика, чтобы он выглядел так же, как в реальном приложении. Для этого нам нужно перейти к файлу App.js нашего проекта, а затем импортировать собственный базовый пакет с помощью Container а также Header составные части. Затем мы собираемся настроить пользовательскую функцию обработки содержимого ящика с именем CustomDrawerContentComponent который принимает реквизит в качестве параметра. Эта функция обработчика предназначена для возврата шаблона для настраиваемого меню ящика. Затем нам нужно реализовать компонент Header с необходимым встроенным стилем для возврата из функции-обработчика.

Мы помним, что реализовали навигатор ящиков под названием MyDrawerNavigator в первой части этой серии руководств. В навигаторе мы передали только конфиг экрана в качестве первого параметра. Теперь нам нужно настроить второй параметр, чтобы расположить и стилизовать меню ящика. Для этого нам нужно установить drawerPosition к left во втором объекте параметра, а также передать CustomDrawerContentComponent свою функцию contentComponent вариант, как показано в фрагменте кода ниже:

import React from 'react';
import {createDrawerNavigator} from 'react-navigation-drawer';
import {createAppContainer} from 'react-navigation';
import {Container, Header} from 'native-base';
import Home from './screens/Home';
const CustomDrawerContentComponent = props => {
  return (
    <Container>
      <Header style={{backgroundColor: '#3a455c', height: 90}}></Header>
    </Container>
  );
};
const MyDrawerNavigator = createDrawerNavigator(
  {
    Home: {
      screen: Home,
    },
  },
  {drawerPosition: 'left', 
    contentComponent: CustomDrawerContentComponent
  },
);
export default createAppContainer(MyDrawerNavigator);

В результате мы получим настроенное меню ящика, как показано в симуляции эмулятора ниже:

На этом этапе мы собираемся добавить некоторые пункты меню в наше индивидуальное меню ящика. Для этого нам нужно использовать дополнительные компоненты из пакета native-base, чтобы правильно структурировать пункты меню. Необходимые компоненты представлены во фрагменте кода ниже:

import { Icon, Container, Content, Header, Left, Body, Right, List, ListItem } from 'native-base'

Теперь мы собираемся сначала реализовать раздел заголовка меню ящика. Для этого нам нужно воспользоваться Left компонент из собственного базового пакета внутри Header составная часть. Left компонент с некоторыми свойствами гибкого стиля будет обертывать Icon компонент, показывающий значок человека. А также Text компонент, который будет приветствовать пользователя, как показано во фрагменте кода ниже:

<Left style={{ flex: 1, flexDirection: 'row', alignItems: 'center' }}>
  <Icon name="person" style={{ color: 'white' }} />
  <Text style={{ marginLeft: 5, fontSize: 22, color: 'white', fontStyle: 'italic' }}>Hello, Kriss</Text>
</Left>

Оба Icon а также Text Компонент для раздела заголовка содержит некоторые встроенные стили, чтобы они выглядели как в реальном приложении Amazon.

Теперь нам нужно добавить пункты меню. Для этого мы будем использовать FlatList компонент из реактивного пакета. FlatList компонент позволяет нам установить конкретный data prop, который принимает массив. Затем он позволяет просто отображать шаблон, содержащий эти данные массива, итеративно, используя renderItem опора Затем, внутри renderItem функциональная опора FlatList компонент, мы собираемся использовать ListItem компонент из пакета native-base для рендеринга элементов списка. ListItem компонент оборачивает Text компонент с текстовым значением из реквизита данных FlatList составная часть. Аналогичным образом мы собираемся создать три FlatList разделы в нашем индивидуальном меню ящика. Content компонент обертывает все три FlatList компонент ниже Header компонент, как показано во фрагменте кода ниже:

     <Content>
        <FlatList
          data={[
            'Home', 'Shop by Category', "Today's Deals"
          ]}
          renderItem={({ item }) => (
            <ListItem noBorder>
              <Text>{item}</Text>
            </ListItem>
          )}
        />
        <FlatList
          style={{ borderTopWidth: 0.5, borderTopColor: '#f0f0f0' }}
          data={[
            'Your Wish List', 'Your Account', "Amazon Pay", "Prime", "Sell on Amazon"
          ]}
          renderItem={({ item }) => (
            <ListItem noBorder>
              <Text>{item}</Text>
            </ListItem>
          )}
        />
        <FlatList
          style={{ borderTopWidth: 0.5, borderTopColor: '#f0f0f0' }}
          data={[
            'Settings', 'Customer Service'
          ]}
          renderItem={({ item }) => (
            <ListItem noBorder>
              <Text>{item}</Text>
            </ListItem>
          )}
        />

Следовательно, мы получим следующее меню ящика с его элементами, как показано на снимке экрана эмулятора ниже:

Наконец, мы успешно завершили реализацию настраиваемого меню ящика в нашем проекте клонирования пользовательского интерфейса Amazon. На этом мы подошли к концу нашей серии руководств по клонированию пользовательского интерфейса Amazon. Получилось познавательно, весело и интересно.

Вывод

Это руководство является третьей и последней частью серии руководств по клонированию пользовательского интерфейса Amazon. В этой части мы продолжили с того места, на котором остановились во второй части этой серии руководств. Здесь мы узнали, как реализовать открытие и закрытие меню ящика с помощью навигационной опоры. Мы получили полное представление о том, как настроить стиль нашего меню ящиков, используя дополнительные параметрические параметры в нашем навигаторе ящиков. Затем мы также научились реализовывать список пунктов меню ящика с помощью FlatList компонент из react-native.

Что ж, на этом мы подошли к концу нашего руководства по реализации клона пользовательского интерфейса Amazon. Надеюсь, это было интересно и познавательно во многих отношениях.

Оставайтесь с нами для получения дополнительной серии учебников !!

Пост Клон пользовательского интерфейса Amazon с помощью React Native #3: Меню ящика появился первым на Крисс.

Раскрытие информации

Этот пост содержит партнерские ссылки; Я могу получить компенсацию, если вы купите
продукты или услуги по разным ссылкам, приведенным в этой статье.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *