当我将项目添加到网格视图的末尾时,我希望用户看到已添加的内容。这是我的意思的示例:
用户通过按+图标添加项目。问题在于,在第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; i++) {
items.add(new Text("Item $i"));
}
return new Scaffold(
appBar: new AppBar(title: new Text("Scroll To End Test")),
body: new GridView.extent(
primary: true,
maxCrossAxisExtent: 150.0,
children: items,
),
floatingActionButton: new FloatingActionButton(
onPressed: () {
setState(() {
_counter++;
});
},
tooltip: 'Increment',
child: new Icon(Icons.add),
),
);
}
}
声明一个滚动控制器,然后使用它来移动到所需的位置。这是滚动到最后一个元素的示例。请注意,滚动控制器已显式声明,因此您无法发出primary: true
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;
ScrollController _scrollController; // NEW
@override // NEW
void initState() { // NEW
super.initState(); // NEW
_scrollController = new ScrollController( // NEW
initialScrollOffset: 0.0, // NEW
keepScrollOffset: true, // NEW
);
}
void _toEnd() { // NEW
_scrollController.animateTo( // NEW
_scrollController.position.maxScrollExtent, // NEW
duration: const Duration(milliseconds: 500), // NEW
curve: Curves.ease, // NEW
); // NEW
} // NEW
@override
Widget build(BuildContext context) {
List items = [];
for (int i = 0; i < _counter; i++) {
items.add(new Text("Item $i"));
}
return new Scaffold(
appBar: new AppBar(
title: new Text("Scroll To End Test"),
actions: <Widget>[ // NEW
new IconButton( // NEW
icon: new Icon(Icons.arrow_downward), onPressed: _toEnd)// NEW
], // NEW
),
body: new GridView.extent(
//primary: true, // REMOVED
maxCrossAxisExtent: 150.0,
children: items,
controller: _scrollController, // NEW
),
floatingActionButton: new FloatingActionButton(
onPressed: () {
setState(() {
_counter++;
});
},
tooltip: 'Increment',
child: new Icon(Icons.add),
),
);
}
}
关于“奖励点”,我对ScrollControllers不太熟练,但是据我所知,该.animateTo( )
方法要求将double作为第一个输入,在那里设置滚动点:原则上,将要滚动 的第i个 项目放到
var cursor = i/(# items) * _scrollController.position.maxScrollExtent
根据网格每行有多少个对象来调整此值。我知道这只是一个草图,但我认为它可以带您到那里。
问题内容: 我的内部具有以下样式: 一旦向表中添加了足够的数据,这将显示一个垂直滚动条。但是,添加新数据后,我希望该元素自动滚动到底部。 我可以使用哪些JavaScript代码执行此操作?我愿意在必要时使用JQuery中的选项,但希望使用JavaScript解决方案。 问题答案: 如果您不知道何时将数据添加到,则可以设置一个间隔,每隔几秒钟将元素的scrollTop更新为其scrollHeight
我有一个列表视图,其中每个项目都显示一个月历。在每个项目中,我都有一个网格视图来显示日期。因此,通过滚动列表项,我可以看到日历月正在发生变化。但是列表视图的滚动并不流畅。通过搜索到目前为止我得到的解决方案,网格视图渲染中有5*7=35个项目,这使得滚动变慢。所以,我通过只返回文本视图而不是我的布局来更改网格适配器的getItem()。 我还使用AsyncTask加载数据,然后将数据馈送到网格适配器
如何获取用户在滚动视图中滚动的像素量。我有一个包含大量文本的滚动视图。我在屏幕底部还有一个按钮。我想要的是将按钮上的文本更改为滚动视图中的滚动量。 这是我的滚动视图: 我的按钮是 我听说这可以通过使用< code>getScrollY()方法来实现。但不知道如何编程使用它。
我的TableView包含一些数字数据。当我说按按钮编辑值时,它会将单元格的背景更改为绿色。当没有足够的行使表格可滚动时,这种方法很有效。一旦表格变成(或从一开始就是)可滚动的,它就会开始表现出怪异的行为。它会更改已编辑项目的背景,但也会更改在向下滚动之前不可见的项目的背景。然而,当我调试时,更改背景的代码只被调用一次。我认为它与tableview有关,当is scrollable破坏并重新创建单
我正在设计一个具有滚动视图的页面,其上方是表格视图(禁用滚动)。为此,我在这个问题中提到了答案 - 使UITableView不可滚动并调整高度以容纳所有单元格,但没有成功。 视图层次结构以及提供的约束- -主视图 -滚动视图< br >固定在主视图的所有边上(0,0,0,0),限制边距 -内容视图 固定到滚动视图(0,0,0,0),与主视图宽度相等,与主视图高度相等(优先级-250) -内容视图中
我的页面中有一个ui视图。单击某个按钮时,将加载ui视图并替换为某个HTML。我想将页面向下滚动到页面刚加载的部分。 这有可能吗?提前感谢
问题内容: 我正在尝试自动执行水平栏的滚动,其中水平栏的元素是动态的,并且可以从API中获取。 有没有一种方法可以在appium中使其自动化? 问题答案: 如果页面底部有任何元素或文本,则可以使用UiAutomator2。 如果您使用的是appium,请添加所需的功能’UiAutomator2’。 现在,如果您有元素的ID,请使用以下函数 如果您有元素的文本,请使用它。 如果您不知道botton中
我遇到了自动布局的问题,似乎无法找到应该很容易实现的答案。 我有以下视图层次结构: 标签上的前导/尾随限制使它们在更薄的设备上更高(iPhone 4s vs iPhone 6)。 为了让UIScrollview正常工作,我需要在UIScrollView内部设置UIView的高度约束,以避免出现“不明确的高度”警告。 但在iPhone 4s上运行时,UIView不够高,无法容纳它的子视图。 到目前为