Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何在充满相同小部件的列表中导航到特定的路由?

如何在充满相同小部件的列表中导航到特定的路由?
EN

Stack Overflow用户
提问于 2021-09-19 17:39:09
回答 2查看 81关注 0票数 0

我有一个应用程序,用户可以将其添加到图书中,并将其上传到firestore数据库,然后我使用streamBuilder()接收所有数据,并将其显示在带有card()GestureDetector()列表中。

下面是

代码语言:javascript
代码运行次数:0
复制
final bookWidget = GestureDetector(
                          key: ValueKey(loggedInUser.email),
                          onTap: () {
                            print(title);
                          },
                          child: Card(
                            semanticContainer: true,
                            clipBehavior: Clip.antiAliasWithSaveLayer,
                            child: Stack(
                              children: [
                                Row(
                                  mainAxisAlignment: MainAxisAlignment.start,
                                  children: [
                                    Container(
                                      width: 100,
                                      height: 140,
                                      decoration: BoxDecoration(
                                        borderRadius: BorderRadius.circular(10),
                                        image: DecorationImage(
                                            fit: BoxFit.cover,
                                            image: NetworkImage(bookCoverURL)),
                                      ),
                                    ),
                                    Container(
                                      width: 230,
                                      //color: Colors.red,
                                      child: Column(
                                        mainAxisAlignment:
                                            MainAxisAlignment.center,
                                        crossAxisAlignment:
                                            CrossAxisAlignment.center,
                                        children: [
                                          Text(
                                            category.toString(),
                                            style: TextStyle(
                                              color: Colors.grey,
                                              fontStyle: FontStyle.italic,
                                            ),
                                          ),
                                          Container(
                                            margin: EdgeInsets.only(top: 10),
                                            child: Text(
                                              title.toString(),
                                              style: TextStyle(
                                                fontWeight: FontWeight.bold,
                                                fontSize: 17,
                                              ),
                                            ),
                                          ),
                                          Container(
                                            margin: EdgeInsets.only(top: 10),
                                            child: Text(
                                              (author),
                                              style:
                                                  TextStyle(color: Colors.grey),
                                            ),
                                          ),
                                        ],
                                      ),
                                    ),
                                    Icon(
                                      Icons.arrow_forward_ios,
                                      color: Colors.black,
                                      size: 15,
                                    )
                                  ],
                                ),
                              ],
                            ),
                            //color: Colors.yellowAccent,
                            shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(10.0),
                            ),
                            elevation: 5,
                            margin: EdgeInsets.all(10),
                          ),
                        );

                        bookWidgets.add(bookWidget);

然后我在屏幕上显示我的所有代码:

代码语言:javascript
代码运行次数:0
复制
  Column(
   children: bookWidgets,
  )

但是,当用户按下特定的card()时,我如何让应用程序导航到新的屏幕?因为它们都是相同的小部件,并且没有唯一标识符?

任何帮助都是非常感谢的!谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-19 20:11:11

代码语言:javascript
代码运行次数:0
复制
     GestureDetector(
                      key: ValueKey(loggedInUser.email),
                      onTap: () {
                        Navigator.pushNamed(
                        context,
                        '/routeNameHere',
                        arguments: id,
                        );
                      },
                    )

在参数参数中: ID -您可以通过要导航到的卡的id来更改id。

您必须为卡片的显示详细信息创建一个页面,该页面仅显示参数中具有相同id的卡片。因此,在新页面上,创建一个用于接收参数的变量,例如:

代码语言:javascript
代码运行次数:0
复制
final cardId = ModalRoute.of(context).settings.arguments as String;

因此,页面可以根据cardId显示卡片。

票数 1
EN

Stack Overflow用户

发布于 2021-09-24 03:44:35

您将需要创建一个要传递的标识符(在本例中为“book”)。在Flutter中,当调用或传递对象时,这些是必需的。

但是,就使用Named Routes而言,这允许您发送不带标识符的数据,但在编码时被认为是不好的做法,因为您没有对调用的引用,也不能回溯整个数据。

记住以上内容,it is possible to use the OnTap() inside each child card container以便在处理点击或点击手势时,使用路由将用户带到不同的屏幕,因为它是GestureDetector类的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69248303

复制
相关文章
iOS开发过程中的奇淫技巧记录
为了修改带分组tableview的section header跟随置顶的问题,网上的奇淫技巧比方通过修改scroller的回调方法,体验不好,正规的方法是修改为tableView的UITableViewStyleGrouped模式,但该模式下列表section Header的高度过高,需要设置一个footer的高度:
呱牛笔记
2023/05/02
6060
iOS开发过程中的奇淫技巧记录
UITextView字数限制
经常做,经常忘,记下来,以后好直接拷贝。 开始使用如下方法做限制 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if ([text isEqualToString:@""] && range.length > 0) { //删除字符肯定是安全的 return YES; }
王大锤
2018/07/04
2.7K0
UITextView Link 颜色
UITextView 设置 NSAttributedString.Key.foregroundColor : UIColor.qvmedi_color(withHEX: 0x304EFF) 不起作用 新增 textView.linkTextAttributes = [:] textView.attributedText = attrStr
developerbfl
2021/04/19
1.9K0
如何隐藏tableHeaderView或tableFooterView
在项目中,因为同一页面结构体不同,头部是相同的结构,用了两个不同的tableView,头部是统一的view,但是发现tableView.tableHeaderView=_headerView只赋值一次,不支持来回赋值,打印出 NSLog(@"%@",_headerView.superview)仍然是上一个tableview视图。
honey缘木鱼
2019/11/04
1.1K0
UITextView字数限制
经常做,经常忘,记下来,以后好直接拷贝。 开始使用如下方法做限制 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { if ([text isEqualToString:@""] && range.length > 0) { //删除字符肯定是安全的 return YES; }
王大锤
2018/05/17
2.4K0
自定义UITextView
自定义UITextView,带有placeholeder,可以设置placeholeder文字的大小和颜色。
hrscy
2018/08/30
5770
自定义UITextView
iOS中UITextView方法解读 原
@property(nonatomic,assign) id<UITextViewDelegate> delegate;
珲少
2018/08/16
9720
设置UITextView的行间距
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53261917
用户1451823
2018/09/13
2K0
UITextView 手势触发 TouchesBegan 函数
前几天做了个手势可以改变文章字体大小的功能。开始,在当前view中添加一个UITextView ,然后添加- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event函数,可怎么也触发不了,在网上找了些资料,说得也不是很清楚,今天把它总结下。
全栈程序员站长
2022/09/16
1.3K0
改变UITextView的边框颜色
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/51086444
用户1451823
2018/09/13
2.1K0
iOS 10 ~ iOS 15 tableview 适配(使用注意事项)
参考:https://www.jianshu.com/p/b42030a37953 https://blog.csdn.net/weixin_34037977/article/details/91634236
清墨
2022/11/12
2.1K0
iOS 10 ~ iOS 15 tableview 适配(使用注意事项)
【IOS开发基础系列】UITextView专题
frame.size.height = self.serTextView.contentSize.height;
江中散人_Jun
2023/10/16
4430
【IOS开发基础系列】UITextView专题
iOS - 解决tableHeaderView添加searchBar后出现的问题
无语了,遇到这个问题,虽然解决了,但接下来还是得好好找找问题的原因所在~~ 问题重现 未修改前的代码 self.tableView.tableHeaderView = self.searchCon
LinXunFeng
2018/06/29
9600
[iOS] 输入框高度随输入内容变化
对于第一点,有一个方便的计算方法,就是获取UITextView内容的高度比上UITextView的字体的高度,即可得到当前的行数。
wOw
2018/09/18
2.5K0
自定义UIPageControl、UITextView占位视图
一言不合先上效果图: ①、自定义的UIPageControl是继承于UIView,封装好的,可以设置图标大小,形状,图片 ,颜色,间隔,当然,需要的话,也可以自定义图标视图;详情请按快捷键Ctrl +
且行且珍惜_iOS
2018/05/22
8610
UITextView自动滚动的解决方案
思路:UIView加载完成3后,用NSTimer结合setContentOffset将UITextView向下滚动1像素。在滚动到底部的时候停止NSTimer。每当手动滚动UITextView前销毁NSTimer,滚动后重新创建NSTimer。 NSTimer *timer; - (void)viewDidLoad { [self performSelector:@selector(resetText) withObject:nil afterDelay:3.0f]; } - (void)resetTe
用户1172164
2018/01/16
1.5K0
刹车盘固有频率检测系统
汽车刹车系统是由刹车盘 (disc)、卡钳 (bracket)、来令片 (pad)、以及托架 (bracket) 所组成。当这些刹车系统部件的固有频率因设计不良或制造不良而导致耦合时,就会在刹车时,因摩擦行为产生的激振力传入系统,而产生共振行为,进而导致刹车异音的发生。
SHOUT
2022/05/31
6250
刹车盘固有频率检测系统
iOS开发中利用runtime设置UITextView的默认文字
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/75258532
用户1451823
2018/09/13
6270
iOS-UITableView 之 tableHeaderView 遮挡后面 cell 的问题
1. 理想状态下的 tableHeaderView(见下图): 理想状态下的tableView.png 2. 但是有时候会出现这种情况(见下图): tableHeaderView遮挡住cel
用户1890628
2018/05/10
3.2K0
点击加载更多

相似问题

SwiftUI ScrollView中包装的非滚动UITextView的固有高度

13

动态设置tableHeaderView高度

105

tableHeaderView中的UITextView找不到委托

11

tableHeaderView的高度似乎为0

11

iOS 7无法更改TableHeaderView的高度

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档