如何为每个不同的feignclient定制不同的 “拦截器”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为每个不同的feignclient定制不同的 “拦截器”相关的知识,希望对你有一定的参考价值。
参考技术A webservice调用用约3种式: 1、使用axis调用 2、使用xfire调用 3、使用cxf调用 项目采用axis进行调用记录备忘: ps教程:想候用xfire式调用结没做记录现已经完全记玩所说要...如何为每个网格项目显示不同的名称和不同的登录页面?
【中文标题】如何为每个网格项目显示不同的名称和不同的登录页面?【英文标题】:How do I display different name and different landing page to each grid item? 【发布时间】:2019-08-06 08:45:02 【问题描述】:我正在尝试构建一个网格项目视图,每个项目应该有不同的文本和不同的登录页面。例如,Android 开发网格项,单击时应转到 Android Dev。页面和 Web 开发网格项,按下时应导航到 Web 开发页面。
这是我当前的显示,我希望每个网格项目都有不同的名称。
var gridView = new GridView.builder(
itemCount: 2,
gridDelegate:
new SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
itemBuilder: (BuildContext context, int index)
return new GestureDetector(
child: new Card(
elevation: 5.0,
child: new Container(
alignment: Alignment.center,
child: new Text('Android Development')),
),
onTap: () => _navigateToQuizPage(context),
);
);
return new DefaultTabController(
length: 1,
child: new Scaffold(
appBar: new AppBar(
title: new Text("Flutter TabBar"),
bottom: tabBarItem,
),
body: new TabBarView(
controller: tabController,
children: [gridView],
),
),
);
void _navigateToQuizPage(BuildContext context)
Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context) => new AndroidQuiz()));
【问题讨论】:
【参考方案1】:首先我建议使用默认的GridView 构造函数而不是GridView.builder
。您可以简单地添加带有调整后的标题和路线的卡片。在这个例子中,我为不同的最终视图使用不同的路线。
另一种解决方案是将参数传递给路由,并根据参数更改视图。如果这将是您的问题的适当解决方案,请发表评论,我将编辑此答案以提供示例。
独立示例(没有下一个视图):
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget
@override
Widget build(BuildContext context)
return MaterialApp(
home: Scaffold(
body: MyGrid(),
),
);
class MyGrid extends StatelessWidget
@override
Widget build(BuildContext context)
return GridView.count(crossAxisCount: 2, children: <Widget>[
MyCard(title: 'Web Development', route: '/web'),
MyCard(title: 'Android Development', route: '/android'),
]);
class MyCard extends StatelessWidget
final String route;
final String title;
MyCard(this.route, this.title);
@override
Widget build(BuildContext context)
return GestureDetector(
onTap: () => Navigator.pushNamed(context, this.route),
child: Card(
child: Center(child: Text(this.title)),
),
);
【讨论】:
以上是关于如何为每个不同的feignclient定制不同的 “拦截器”的主要内容,如果未能解决你的问题,请参考以下文章
如何为android中每个不同的屏幕尺寸定义dimens.xml?