Два круга, соприкасающиеся линиями. Как подогнать этот пользовательский интерфейс для всех типов вкладок и экранов во флаттере?

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

Мне нужно добиться этого программно во флаттере для всех вкладок и мобильных экранов.

Добро пожаловать в Stack Overflow! Имейте в виду, что Stack Overflow не является службой написания кода. Пожалуйста, пройдите тур , прочтите Как задать вопрос и отредактируйте свой вопрос, включив минимально воспроизводимый пример, показывающий, что вы уже сделали.

Fastnlight 16.02.2023 16:38
Типы данных JavaScript
Типы данных JavaScript
В JavaScript существует несколько типов данных, включая примитивные типы данных и ссылочные типы данных. Вот краткое объяснение различных типов данных...
Как сделать движок для футбольного матча? (простой вариант)
Как сделать движок для футбольного матча? (простой вариант)
Футбол. Для многих людей, живущих на земле, эта игра - больше, чем просто спорт. И эти люди всегда мечтают стать футболистом или менеджером. Но, к...
Знайте свои исключения!
Знайте свои исключения!
В Java исключение - это событие, возникающее во время выполнения программы, которое нарушает нормальный ход выполнения инструкций программы. Когда...
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик
CSS Flex: что должен знать каждый разработчик Модуль flexbox, также известный как гибкий модуль разметки box, помогает эффективно проектировать и...
Введение в раздел "Заголовок" в HTML
Введение в раздел "Заголовок" в HTML
Говорят, что лучшее о человеке можно увидеть только изнутри, и это относится и к веб-страницам HTML! Причина, по которой некоторые веб-страницы не...
1
1
51
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

  • попробуй это.

 Transform.scale(
            scale: .5,
            child: const SizedBox(
              width: 100,
              height: 100,
              child: FlutterLogo(),
            ),
  ),

Привет @bakboem, спасибо за ответ .. мне нужно провести линию между половиной двух кругов.

Rajesh 16.02.2023 14:43
Ответ принят как подходящий

Попробуйте использовать следующий базовый код, который вы можете настроить по своему требованию.

Stack(
  children: [
    Container(
      height: 32,
      decoration: BoxDecoration(
        color: Colors.white, borderRadius: BorderRadius.circular(16),
        border: Border.all(color: Colors.tealAccent, width: 2),
      ),
      
    ),Row(
    mainAxisAlignment: MainAxisAlignment.spaceBetween,
    children: [
      Container(
          height: 32,
          width: 32,
        margin: const EdgeInsets.all(0),
          decoration: BoxDecoration(
            color: Colors.white, borderRadius: BorderRadius.circular(16),
            border: Border.all(color: Colors.tealAccent, width: 2),
          ),
          alignment: Alignment.center,
          child: const Icon(Icons.arrow_back_ios, size: 24, color: Colors.tealAccent,)),
      Text('Your Text Here'),
      Container(
          height: 32,
          width: 32,
        margin: const EdgeInsets.all(0),
          decoration: BoxDecoration(
            color: Colors.white, borderRadius: BorderRadius.circular(16),
            border: Border.all(color: Colors.tealAccent, width: 2),
          ),
          alignment: Alignment.center,
          child: const Icon(Icons.arrow_forward_ios, size: 24, color: Colors.tealAccent,))
    ],
  )
  ],
)

Привет, @Alex Sunder Singh, спасибо за решение проблемы.

Rajesh 17.02.2023 05:57

Вы должны сделать это вручную, зафиксировав высоту. я сделал один для тебя.


class FirstScreen extends StatelessWidget {
  const FirstScreen({Key? key}) : super(key: key);
 
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: SizedBox(
          height: 60,
          width: double.infinity,
          child: Stack(
            children: [
              Positioned(
                top: 0,
                bottom: 0,
                left: 40,
                right: 40,
                child: Container(
                  constraints: const BoxConstraints.expand(),
                  decoration: BoxDecoration(
                    border: Border.all(color: Colors.cyan, width: 2),
                  ),
                  child: const Center(child: Text('Hello man')),
                ),
              ),
              Positioned(
                top: 0,
                left: 0,
                bottom: 0,
                width: 80,
                child: _icon(Icons.arrow_back_ios_new),
              ),
              Positioned(
                top: 0,
                right: 0,
                width: 80,
                bottom: 0,
                child: _icon(Icons.arrow_forward_ios),
              ),
            ],
          ),
        ),
      ),
    );
  }
 
  Widget _icon(IconData icon) => Container(
        constraints: const BoxConstraints.expand(),
        decoration: BoxDecoration(
          shape: BoxShape.circle,
          color: Colors.white,
          border: Border.all(color: Colors.cyan, width: 2),
          boxShadow: [
            BoxShadow(
              color: Colors.grey[200]!,
              spreadRadius: 1,
              blurRadius: 20,
            ),
            BoxShadow(
              color: Colors.grey[300]!,
              spreadRadius: 1,
              blurRadius: 20,
            )
          ],
        ),
        child: Icon(
          icon,
          color: Colors.cyan,
        ),
      );
}

Другие вопросы по теме