相关疑难解决方法(0)

如何获得ScrollController的完整大小

我已经将ScrollController附加到[SliverAppBar,SliverList]的CustomScrollView

在默认情况下,我会使用reverse:true和animateTo(0.0)将滚动移动到添加的最后一个元素,但在这种情况下使用reverse也会反转SliverAppBar/SliverList顺序!

所以我想使用animateTo(sizeOfScrollableAfterElementAdded)但我找不到这个值.

谢谢 !

flutter

13
推荐指数
2
解决办法
4141
查看次数

Flutter - 如何一直滚动到 ListView 的底部?

我使用这段代码来滚动:

WidgetsBinding.instance?.addPostFrameCallback((_) => _scrollToEnd());
Run Code Online (Sandbox Code Playgroud)

_scrollToEnd()方法是:

_scrollController.animateTo(
  _scrollController.position.maxScrollExtent,
  duration: const Duration(
    milliseconds: 200,
  ),
  curve: Curves.easeInOut,
);
Run Code Online (Sandbox Code Playgroud)

将其想象为一个普通的聊天屏幕。如果消息在 1 行中,它会滚动到裸露的底部。但是,一旦消息达到 2 行以上,它就不会一直滚动到底部。消息的行数越多,滚动到底部的次数就越少。

这是我进入聊天时的样子:

但如果我进一步向下滚动,这就是聊天的底部:

我注意到还有一种情况:

  1. 我进入聊天。
  2. 它像第一张图片一样向下滚动。
  3. 如果我点击屏幕上的任意位置,它会继续滚动到列表视图的裸露底部,就像第二张图片一样。

为什么会发生这种情况以及如何解决这个问题?

mobile android ios dart flutter

7
推荐指数
3
解决办法
7999
查看次数

ScrollController未附加到任何滚动视图

我正在使用CustomScrollView,并为其提供控制器。ScrollController可以工作,我什至在其中添加了一个侦听器并打印出滚动视图的位置。

CustomScrollView(
    controller: _scrollController,
Run Code Online (Sandbox Code Playgroud)

现在,我要做的就是跳到initState()函数中的50.0位置。

_scrollController.jumpTo(50.0);
Run Code Online (Sandbox Code Playgroud)

但是,我得到了错误

scrollController未附加到任何滚动视图

flutter

5
推荐指数
6
解决办法
4695
查看次数

颤动滚动到动态ListView的底部

我查看并找到了几种解决方案,但似乎都不适合我的配置,需要一些帮助。我将所有代码放在这里,看看是否有人知道在哪里应用ScrollController。我已经尝试了原始ListView,但是我从futureResponse在ListView构建器中动态构建了其他项。

import 'dart:async';
import 'dart:io';
import 'dart:typed_data';


import 'dart:convert';
import 'package:http/http.dart' as http;
import 'package:intl/intl.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:cswauthapp/models.dart';
import 'package:cswauthapp/ChatConvoDetail.dart';
import 'package:cswauthapp/Settings.dart' as Admin;
import 'package:cswauthapp/HomePage.dart' as HomePage;
import 'package:cswauthapp/main.dart' as MyHomePage;
import 'package:cswauthapp/PostAuthHome.dart' as PostAuthHome;
import 'package:image_picker/image_picker.dart';
import 'package:cswauthapp/ShowPic.dart';
import 'package:path/path.dart' as path;
import 'package:video_player/video_player.dart';
import 'package:cswauthapp/vplayer.dart' as vplayer;

class ChatDivided extends StatefulWidget {
  ChatDivided({Key key, this.title, this.mychat}) : super(key: key);

  static const String routeName = "/ChatDivided";

  final ChatList mychat;
  final String title;

  @override …
Run Code Online (Sandbox Code Playgroud)

flutter

4
推荐指数
3
解决办法
6156
查看次数

Flutter:如何制作一个始终滚动到底部的列表?

我正在尝试制作一个基本上是日志屏幕的列表。也就是说,我需要列表一直滚动到底部。

如何做到这一点?

flutter

4
推荐指数
3
解决办法
8230
查看次数

在 Flutter 应用程序中的 ListView 滚动上隐藏/关闭键盘

我在 Flutter 应用中有聊天窗口。消息显示为小部件内的ListView小部件,我还有附加到窗口底部的消息输入小部件。

我想要

  1. 当我滚动时隐藏键盘 ListView
  2. 添加新消息时滚动到最后一条消息 InputWidget

代码:

class _MessagesPageState extends State<MessagesPage> {
  final ScrollController listScrollController = ScrollController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
    ....
    body: Stack(
        children: [
          ListView.builder(
              controller: listScrollController
              ....
          ),
          InputWidget()]
    );
}

class InputWidget extends StatelessWidget {

  final TextEditingController _textEditingController = TextEditingController();

....
Row (
  children: [
    TextField(
     controller: _textEditingController
    ), 
    IconButton(icon: ...., onPressed: (){})
  ]
 )}
Run Code Online (Sandbox Code Playgroud)

keyboard dart flutter flutter-layout

3
推荐指数
2
解决办法
4919
查看次数

如何自动滚动到网格视图的结尾?

当我将项目添加到网格视图的末尾时,我希望用户看到已添加的内容.这是我的意思的一个例子:

截图

用户通过按+图标添加项目.问题是在第14项之后没有反馈表明已添加任何项目.将其添加到列表后,如何自动滚动到最后一项?

(加分点:如何在列表中间的某处添加时滚动到第n个项目)

这是滚动到列表视图末尾的答案,但如果我颠倒了列表的顺序,那么有时在顶行上有"缺少"项目看起来很奇怪.

这是我的代码:

import 'package:flutter/material.dart';

void main() {
  runApp(new MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  @override
  Widget build(BuildContext context) {
    List items = [];
    for (int i = 0; i < _counter; …
Run Code Online (Sandbox Code Playgroud)

flutter

2
推荐指数
1
解决办法
3492
查看次数

如何在颤动中将列表视图滚动到底部

我有一个 flutter 应用程序包含一个列表视图生成器(聊天页面),我需要将页面滚动到页面末尾到最后一条消息?

listview scroll chat dart flutter

2
推荐指数
2
解决办法
2859
查看次数

Flutter ListView 在构建时滚动到底部

是否可以在 Flutter 列表视图最初加载其所有数据后滚动到底部?我知道 scrollController.jumpTo() 逻辑,但是必须在某些事件处理程序中调用它,您将如何在列表视图构建完成后调用它,以便屏幕一打开它就会滚动到底部?

listview flutter flutter-layout

1
推荐指数
1
解决办法
3704
查看次数

标签 统计

flutter ×9

dart ×3

flutter-layout ×2

listview ×2

android ×1

chat ×1

ios ×1

keyboard ×1

mobile ×1

scroll ×1