Стиль для средства выбора React Native

#reactjs #react-native #native-base

#reactjs #react-native #native-база

Вопрос:

Я работаю с родной базой сборщика для React Native. Я хочу, чтобы средство выбора стилей походило на картинку, которую я публикую как для Android, так и для iOS. Но я не знаю, как создать подобный стиль.

введите описание изображения здесь

Ответ №1:

  1. Установите библиотеку npm
    https://www.npmjs.com/package/react-native-smooth-picker в npm я использую react-native-smooth-средство выбора

  2. Вы также можете проверить из репозитория git https://github.com/rdhox/react-native-smooth-picker


Объявляйте константу глобально

 import SmoothPicker from "react-native-smooth-picker";

const Bubble = props => {
  const { children, selected, horizontal } = props;
  return (
    <View
      style={[
        horizontal ? styles.itemStyleHorizontal : styles.itemStyleVertical,
        selected amp;amp;
          (horizontal
            ? styles.itemSelectedStyleHorizontal
            : styles.itemSelectedStyleVertical)
      ]}
    >
      <Text
        style={{
          textAlign: "center",
          fontSize: selected ? 20 : 17,
          color: selected ? "#006E4F" : "#006E4F",
          fontWeight: selected ? "bold" : "normal",          
        }}
      >
        {children}
      </Text>
    </View>
  );
};
  

Добавить внутренний рендеринг()

 <SmoothPicker
            initialScrollToIndex={selected}
            onScrollToIndexFailed={() => {}}
            keyExtractor={(_, index) => index.toString()}
            showsVerticalScrollIndicator={false}
            bounces={true}
            offsetSelection={40}
            scrollAnimation
            data={Array.from({ length: 15 }, (_, i) => 0   i)}
            onSelected={({ item, index }) => this.handleChange(index)}
            renderItem={({ item, index }) => (
              <Bubble selected={index === selected}>{item}</Bubble>
            )}
          />
  
  1. Проверьте образец проекта на предмет стиля, его нужно немного доработать.

     const styles = StyleSheet.create({
      container: {
        paddingTop: 60,
        paddingBottom: 30,
        flex: 1,
        flexDirection: "column",
        justifyContent: "space-between",
        alignItems: "center",
        backgroundColor: "#F5FCFF"
      },
      wrapperHorizontal: {
        width: 300,
        height: 50,
        justifyContent: "center",
        alignItems: "center",
        margin: "auto",
        color: "black",
        marginBottom: 80
      },
      wrapperVertical: {
        width: 100,
        height: 300,
        justifyContent: "center",
        alignItems: "center",
        margin: "auto",
        color: "black"
      },
      itemStyleVertical: {
        justifyContent: "center",
        alignItems: "center",
        width: 50,
        height: 50,
        paddingTop: 0,
        borderWidth: 1,
        borderColor: "grey",
        borderRadius: 0,
        backgroundColor: "#D9F5ED"
      },
      itemSelectedStyleVertical: {
        paddingTop: 0,
        borderWidth: 2,
        borderColor: "#DAA520",
        justifyContent: "center",
        alignItems: "center",
    
        backgroundColor: "#D9F5ED"
      },
      itemStyleHorizontal: {
        justifyContent: "center",
        alignItems: "center",
        width: 50,
        height: 50,
        paddingTop: 0,
        borderWidth: 1,
        borderColor: "grey",
        borderRadius: 0,
        backgroundColor: "#D9F5ED"
      },
      itemSelectedStyleHorizontal: {
        paddingTop: 0,
        borderWidth: 2,
        borderColor: "#DAA520",
        justifyContent: "center",
        alignItems: "center",    
        backgroundColor: "#D9F5ED"
      }
    });
      

Комментарии:

1. Когда я импортирую SmoothPicker из «react-native-smooth-picker»; Это ошибка

2. Свяжите свои собственные зависимости: sudo react-встроенная ссылка