flutter - Flutter:如何检查 Widget 是否为滚动小部件
问题描述
ListView
,GridView
等小部件SingleChildScrollView
是可滚动的小部件,而Container
, SizedBox
,Column
则不是。
有没有办法检查是否Widget
可滚动,使用类似的东西
Widget widget = SomeWidget();
bool scrollable = widget.isScrollable(): // any property like this?
解决方案
当你写这样的东西时:
Widget widget = SomeWidget();
那么您基本上是将您的小部件向下转换为类Widget
,这是所有类的父类。如果您检查文档中的 Widget 类,您应该只看到 3 个公开的方法。哪个是:
createElement
debugFillProperties
toStringShort
bool scrollable = widget.isScrollable(): // 任何这样的属性?
所以不,这是不可能的。
但是,您知道小部件必须是ScrollView的子类或者是SingleChildScrollView类型,因此您可以自己编写实用方法。喜欢
bool isScrollable(Widget widget) => widget is ScrollView || widget is SingleChildScrollView;
推荐阅读
- angular - 黄瓜 - 量角器不识别步骤定义
- xamarin.forms - Print dynamic images along with text
- jquery - 如何在成功函数中将字符串添加到 Ajax 响应?jQuery
- ruby - How to run pry with bundler without Gemfile
- android - Android - Request Permission dialog not appearing after requestPermissions(activity, permissions[], requestCode)
- python - 在 Python 中动态创建列表和字典。我正在尝试在 Python 中创建数组
- php - Status Code: 500 Malformed UTF-8 characters, possibly incorrectly encoded Laravel
- pandas - 这种 one-hot 编码的问题是什么?
- entity-framework-4 - 一个 Azure SQL 查询几乎消耗了所有 query_stats.total_worker_time 和 query_stats.execution_count
- java - java.net.SocketException:运行测试时套接字关闭