草庐IT

design-pattern

全部标签

material-design - Flutter:如何使卡片可点击?

我只有一个简单的卡片,比如newCard(child:newText('Mycoolcard'))我希望能够点击它的任何地方来运行一些功能,除了有卡片没有onPressed方法。我可以在底部添加一个按钮,但这对这种情况来说并不理想。谁知道如何让整张卡片都可以点击? 最佳答案 Flutter使用组合而不是属性。将所需的小部件包装到可点击的小部件中以实现您的需要。一些可点击的小部件:GestureDetector,InkWell,InkResponse.GestureDetector(onTap:()=>......,child:Car

design-patterns - 是否可以在 Flutter 中为不同的小部件使用带有抽象层的多态性?

我有一组大约8个小部件,它们都接受一个X类型的参数并以不同的方式显示X类型的内容。我试图创建的是一个定义此类小部件结构的抽象层。除了结构之外,抽象层还将定义一个工厂方法来根据ID决定使用哪个实现。不同的实现都是扩展Stateless-或StatefulWidget的小部件。抽象层如下所示:abstractclassAbstractWidget{finalXcontent;factoryAbstractWidget({@requiredintid,@requiredXcontent}){switch(id){case1:returnImplementation1(content);bre

design-patterns - 选择正确的 Flutter 设计模式

我创建了一个Flutter页面,其中包含大量输入。我认为这是一团糟,让我们重构它并为每个输入创建一个新的有状态小部件。这很好,除了数据需要在父小部件中,而且我很难理解如何将数据从新的子小部件传回给父小部件。我发现了一些hacky方法,你传入一个函数,每当有变化时,你就通过该函数将数据传递给父级。可行,但现在有多个变量,一个在子级中,一个在父级中.我已经阅读了有关bloc模式的信息,但我不确定这是否是我所需要的。我只想要一个单例样式对象,主要小部件及其子部件都可以读取,并且在有新输入时子部件可以更新。有人可以解释一下bloc模式是否可以帮助我解决这个问题,或者是否有另一种设计模式可以帮助

dart - 用于隐藏和取消隐藏小部件的 Bloc Pattern

我正在尝试从互联网上获取一些数据并将其显示在列表中。以下是我的bloc代码classStudentsBloc{final_repository=Repository();final_students=BehaviorSubject();finalBehaviorSubject_showProgress=BehaviorSubject();finalBehaviorSubject_showNoInternetViews=BehaviorSubject();Observablegetstudents=>_students.stream;ObservablegetshowProgress=>

flutter - 错误 : "Bad state: No element" when using BLoC_pattern with a bool value

我正在使用bloc_pattern包,我有一个bloc将管理一个最喜欢的IconButton,我有一个名为_isFavorite的bool变量,它将传递到流以显示该项目是否是最喜欢的。当我实例化FavoriteBloc时,出现错误:“错误状态:无元素”。我播种了一个值“false”,但它不起作用。我按照包的示例进行操作,有谁知道我是如何修复它的?classFavoritesBlocextendsBlocBase{FavoritesBloc();bool_isFavorite;var_favoriteController=BehaviorSubject.seeded(false);Str

dart - 当我专注于 TextField - Bloc Pattern 时小部件重新呈现

我正在使用BLoC来保持两个嵌套的FullScreenDialogs之间的状态。当我按下第一个屏幕时,我正在初始化bloc,就像这样returnFloatingActionButton(child:Icon(Icons.add),onPressed:(){Navigator.of(context).push(MaterialPageRoute(builder:(BuildContextcontext)=>ProductBlocProvider(child:ProductEntryScreen()),fullscreenDialog:true));},);ProductEntryScre

dart - 如何在 Bloc Pattern 中使用 SharedPreferences?

我正在尝试在我的应用程序中使用bloc模式的共享首选项。以下是我的代码classPrefsStats{finalboolisMale;finalStringname;finalintage;PrefsStats(this.isMale,this.name,this.age);}classPrefsBloc{final_changePrefernce=BehaviorSubject();Function(PrefsStats)getchangePrefs=>_changePrefernce.sink.add;Streamgetprefrence=>_changePrefernce.str

flutter - 如何将符合 Material Design 标准的填充应用于我的 Flutter 支架?

我编写了一个使用package:flutter/material.dart的Flutter应用程序。在iOS模拟器上运行应用程序如下所示。如您所见,一行中的组件之间没有填充,并且组件到达顶部,底部,左侧和右侧没有填充/边距/边框。我的问题是:应用符合Material的填充的推荐方法是什么,例如转换为和下拉按钮之间的标签组件间隙。我会把我的组件打包到容器中并在那里应用填充吗?非常感谢您。这是应用程序代码:import'package:flutter/material.dart';import'converter.dart';import'model.dart';const_appName

database-design - 使用redis获取我的 friend 事件(redis JOIN替代方案)

我想通过使用redis来提高应用程序的性能。我成功地将它用于缓存和计数器,现在正尝试使用它来搜索我friend的事件。我们有2个表:事件(用户、事件、时间戳)friend(用户,friend)我需要能够让我friend的事件按时间戳排序。在sql中它可能看起来像:SELECTact.activity,act.timestampFROMactivitiesactJOINfriendsfrONfr.friend=act.userANDfr.user="{user}"WHEREact.timestampUPD要点:https://gist.github.com/nanvel/8725b9c7

database-design - 我可以在 Oracle 数据库中持久化 redis 数据吗?

我们正在尝试通过Redis实现缓存,我了解到它会将数据存储到自己格式的RDB文件中。但是我们已经有其他客户端使用的Oracle持久性。因此,我们不想将数据存储在RDB文件中,而是希望将数据持久保存在OracleDB中。 最佳答案 在这种情况下禁用文件写入,并将Redis用作纯内存缓存。为此,只需注释redis.conf中的所有“保存”行即可。在伪代码中,读取一个值应该像这样完成:result=getvaluefromredisif(resultisnull){result=getvaluefromOraclestoreresulti