Как создать пользовательский заголовок для Picker

1
4

Я пытаюсь воссоздать приложение таймера из watchOS, но мне сложно понять, как воссоздать этот макет с заголовком над Picker.

watchOS timer appwatchOS timer app

Когда я попытался воссоздать это, уменьшение ширины Picker обрезало заголовок label.

my watchOS timer app

Есть идеи, как сделать так, чтобы заголовок выглядел так же, как в приложении watchOS timer? Я пробовал смотреть документацию для Picker, но ничего не нашел о стилизации заголовка.

HStack {
    Picker("Minutes", selection: $minutes) {
        ForEach(options, id: \.self) { minute in
            Text("\(minute)")
                .tag(minute)
        }
    }
    .frame(width: 50, height: 100)
    
    Text(":")
        .font(.title)
    
    Picker("Seconds", selection: $seconds) {
        ForEach(options, id: \.self) { second in
            Text("\(second)")
                .tag(second)
        }
    }
    .frame(width: 50, height: 100)
}
Аникей
Вопрос задан29 января 2024 г.

1 Ответ

2

Создание пользовательского заголовка для Picker зависит от того, какую библиотеку вы используете. Вот несколько примеров для популярных библиотек:

1. React Native Picker:

import React, { useState } from 'react';
import { Picker, View, Text } from 'react-native';

const App = () => {
  const [selectedValue, setSelectedValue] = useState('java');

  return (
    <View>
      <Picker
        selectedValue={selectedValue}
        onValueChange={(itemValue) => setSelectedValue(itemValue)}
        style={{ width: 200 }}
      >
        <Picker.Item label="JavaScript" value="javascript" />
        <Picker.Item label="Java" value="java" />
        <Picker.Item label="Python" value="python" />
      </Picker>
      <Text>Выбранный язык: {selectedValue}</Text>
    </View>
  );
};

export default App;

2. React Native Elements Picker:

import React, { useState } from 'react';
import { Picker } from 'react-native-elements';

const App = () => {
  const [selectedValue, setSelectedValue] = useState('java');

  return (
    <Picker
      selectedValue={selectedValue}
      onValueChange={(itemValue) => setSelectedValue(itemValue)}
      style={{ width: 200 }}
    >
      <Picker.Item label="JavaScript" value="javascript" />
      <Picker.Item label="Java" value="java" />
      <Picker.Item label="Python" value="python" />
    </Picker>
  );
};

export default App;

3. Material-UI Picker:

import React, { useState } from 'react';
import { FormControl, Select, MenuItem } from '@mui/material';

const App = () => {
  const [selectedValue, setSelectedValue] = useState('java');

  return (
    <FormControl>
      <Select
        value={selectedValue}
        onChange={(event) => setSelectedValue(event.target.value)}
      >
        <MenuItem value="javascript">JavaScript</MenuItem>
        <MenuItem value="java">Java</MenuItem>
        <MenuItem value="python">Python</MenuItem>
      </Select>
    </FormControl>
  );
};

export default App;

4. Bootstrap Picker:

<!DOCTYPE html>
<html>
<head>
  <title>Bootstrap Picker</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
</head>
<body>
  <select class="form-control">
    <option value="javascript">JavaScript</option>
    <option value="java">Java</option>
    <option value="python">Python</option>
  </select>
  <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.min.js"></script>
</body>
</html>

Важно: Эти примеры представляют собой базовый шаблон для создания пользовательского заголовка. В зависимости от ваших требований, вы можете дополнительно настроить стили, функциональность и внешний вид  Picker

Советы:

  • Используйте компоненты библиотеки:Используйте встроенные компоненты для создания заголовка, если они предоставлены библиотекой (например, Picker.Item).
  • Добавьте стили: Настройте стили заголовка с помощью CSS или встроенных стилей библиотеки.
  • Используйте JavaScript: Используйте JavaScript для дополнительной функциональности, например, для динамического обновления заголовка.

Важно: Ознакомьтесь с документацией используемой библиотеки, чтобы узнать о конкретных возможностях для настройки Picker и создания пользовательских заголовков.

 

Казимир
Ответ получен13 сентября 2024 г.

Ваш ответ

Загрузить файл.