Трепетать, как остановить прокрутку, когда фокус TextField в CustomScrollView? - PullRequest
1 голос
/ 08 января 2020

Я борюсь с TextField внутри CustomScrollView.

В моем приложении у меня есть содержимое CustomScrollView SliverAppBar и SliverList. Insise SliverAppBar Я поставил TextField. Когда я фокусирую TextField, SliverList автоматически прокручивает в верхнюю позицию, затем я добавляю свойство showCursor: false, он останавливает прокрутку, но я хочу показать курсор, а не прокрутить. Как заархивировать это. Большое спасибо !!

Это мой код:

import 'package:flutter/material.dart';

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      drawer: Drawer(),
      body: SafeArea(
          child: CustomScrollView(
        slivers: <Widget>[
          SliverAppBar(
            leading: Container(),
            floating: true,
            pinned: false,
            snap: true,
            bottom: PreferredSize(
              preferredSize: Size.fromHeight(20.0),
              child: Container(),
            ), // Add this code
            flexibleSpace: Container(
              padding: EdgeInsets.all(10),
              height: 340,
              width: double.infinity,
              child: Stack(
                children: <Widget>[
                  Positioned.fill(
                      child: Container(
                    color: Colors.white,
                  )),
                  Center(
                    child: TextField(
                      autofocus: false,
                      decoration: InputDecoration(
                        border: InputBorder.none,
                        contentPadding: EdgeInsets.only(left: 8.0),
                        hintText: "Search",
                        hintStyle: TextStyle(fontSize: 20),
                      ),
                      showCursor: true, //not show cursor
                    ),
                  ),
                ],
              ),
            ),
          ),
          SliverList(
            delegate: SliverChildBuilderDelegate(
              (BuildContext context, int index) {
                return Container(
                    color: Colors.blue[(index + 1) * 50], height: 150.0);
              },
              childCount: 10,
            ),
          ),
        ],
      )),
    );
  }
}
...