我正在 flutter 中使用 DraggableScrollableSheet,我想知道工作表是折叠还是展开。 DraggableScrollableSheet 的构建器提供了一个 scrollController,我为其附加了一个监听器。
我看到这个 helpful guide但是他们创建了一个 ScrollController,但在我的例子中,scrollController 是由构造函数提供的。我不明白我怎么能得到他们相同的行为
这是我的代码:
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => new _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SizedBox.expand(
child: myBottomSheet()
),
);
}
}
class myBottomSheet extends StatefulWidget{
@override
_myBottomSheetState createState() => _myBottomSheetState();
}
class _myBottomSheetState extends State<myBottomSheet> {
double appbarSize=0.08;
@override
Widget build(BuildContext context) {
return DraggableScrollableSheet(
maxChildSize: 0.8,
minChildSize: appbarSize,
initialChildSize: appbarSize,
builder: (BuildContext context, ScrollController scrollController) {
scrollController.addListener(_scrollListener); // <----------------
return Container(
child: ListView.builder(
controller: scrollController,
itemCount: 25,
itemBuilder: (BuildContext context, int index) {
return ListTile(title: Text('Item $index'));
},
),
);
},
);
}
_scrollListener(){
//use controller such in the guide
}
最佳答案
您只需要重构代码。在构建器中定义您的 _scrollListener 方法。
见下文:
class _myBottomSheetState extends State<myBottomSheet> {
double appbarSize=0.08;
@override
Widget build(BuildContext context) {
return DraggableScrollableSheet(
maxChildSize: 0.8,
minChildSize: appbarSize,
initialChildSize: appbarSize,
builder: (BuildContext context, ScrollController scrollController) {
_scrollListener(){
//use controller such in the guide
}
scrollController.addListener(_scrollListener); // <----------------
return Container(
child: ListView.builder(
controller: scrollController,
itemCount: 25,
itemBuilder: (BuildContext context, int index) {
return ListTile(title: Text('Item $index'));
},
),
);
},
);
}
关于flutter - 将监听器附加到 scrollController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57054320/
我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。
我有以下字符串:a="001;Barbara;122"我拆分成字符串数组:names=a.split(";")names=["001","Barbara","122"]我应该怎么做才能将每个元素另外用''引号括起来?结果应该是names=["'001'","'Barbara'","'122'"]我知道这听起来很奇怪,但我需要它在rubyonrails中进行数据库查询。出于某种原因,如果我的名字在“”引号中,我将无法访问数据库记录。我在数据库中确实有mk1==0006但rails不想以某种方式访问它。但是,它确实访问1222。sql="SELECTmk1,mk2,pk1,pk
在Rails中,什么是集成更新模型某些元素的UDP监听过程的最佳方式(特别是它将向其中一个表添加行)。简单的答案似乎是在同一个进程中使用UDP套接字对象启动一个线程,但我什至不清楚我应该在哪里做适合Rails方式的事情。有没有一种巧妙的方法来开始收听UDP?具体来说,我希望能够编写一个UDPController并在每个数据报消息上调用一个特定的方法。理想情况下,我希望避免在UDP上使用HTTP(因为它会浪费一些在这种情况下非常宝贵的空间),但我完全控制消息格式,因此我可以为Rails提供它需要的任何信息。 最佳答案 Rails是一个
给定一个最小整数和最大整数,我想创建一个数组,它从最小值到最大值以二为单位计数,然后倒退(再次以二为单位,重复最大数)。例如,如果最小数是1,最大数是9,我想要[1,3,5,7,9,9,7,5,3,1].我试图尽可能简洁,这就是我使用单行代码的原因。在Python中,我会这样做:range(1,10,2)+range(9,0,-2)在我刚刚开始学习的Ruby中,到目前为止我所想到的是:(1..9).inject([]){|r,num|num%2==1?r这行得通,但我知道必须有更好的方法。这是什么? 最佳答案 (1..9).step
这个问题在这里已经有了答案:ArestringsmutableinRuby?(3个答案)WhenpassingaRubyarrayasanargument,whydoes`(2个答案)关闭8年前。我正在学习教程,我想了解为什么会出现以下情况:original_string="Hello,"hi=original_stringthere="World"hi+=thereassert_equal"Hello,",original_stringoriginal_string="Hello,"hi=original_stringthere="World"hi为什么+=对original_str
一、环境变量右键点击我的电脑-属性:然后找到环境变量 1.Android的SDK不在C盘的话需要额外配这个到用户环境变量:ANDROID_HOMED:\AndroidSDK2.然后在系统变量:Path中添加一条这样的值 D:\Flutter\flutter\bin 这个值写flutter包解压的实际地址即可 3.在系统变量中添加两个镜像变量: 变量名:FLUTTER_STORAGE_BASE_URL 变量值:https://storage.flutter-io.cn 变量名:PUB_HOSTED_URL 变量
这是问题“GivenaninstanceofaRubyobject,howdoIgetitsmetaclass?”的反面您可以在默认的to_s输出中看到附加元类或单例类的对象的表示:s="hello"s_meta=class"#>"classC;endc_meta=class"#"是否有可能实现一个方法Class.attached来返回这个对象(如果接收者是一个普通类,则返回nil)?s_meta.attached#=>sc_meta.attached#=>CC.attached#=>nil 最佳答案 有一个丑陋的(但有效的)黑客,
所以我有一个由collect构建的数组。@a=Relation.where(part:"v04")@relations=@a.collect{|x|x.car}构建..=>["f03","f04"]@a=Relation.where(part:"v03")@relations=@a.collect{|x|x.car}构建..=>["f01","f03"]我想要的是追加收集,这样我就可以从v03和v04构建一个数组,它看起来像这样。=>["f03","f04","f01","f03"]然后只保留唯一值,所以它看起来像这样。=>["f03","f04","f01"]取出f03,因为它列出了
在ruby中追加和前置冒号有什么区别?例子:#Inrailsyouoftenhavethingslikethis:has_many:models,dependent::destroy为什么dependent:有一个冒号,而:models和:destroy有一个冒号?有什么区别? 最佳答案 这是Ruby1.9中的新语法,用于定义散列中作为键的符号。前置和附加的:都定义了一个symbol,但后者仅在散列初始化期间有效。你可以想到一个symbol作为轻量级字符串常量。相当于:dependent=>:destroy在1.9之前,散列是使
我最近一直在使用Compass和Sass来做一些CSSspriting,因为它非常有用。但是,文件名总是附加一个随机字符串。例如。图标-s5eb424578c.png。而且我不希望附加这个随机字符串,因为这意味着每次发生更改时我都需要上传新的CSS文件和新的Sprite图像。那么,有人知道Compassgem目录中哪个Ruby或其他配置文件附加了这个随机字符串吗?然后我可以只注释掉那个位的代码。除非我缺少官方变量,否则我可以在Compass中设置以告诉它我不想附加此字符串?提前感谢您对此提供的任何帮助。 最佳答案 尝试将这些行添加到