如何为每个不同的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定制不同的 “拦截器”的主要内容,如果未能解决你的问题,请参考以下文章

Plotly:如何为每个变量创建具有不同样式和颜色的线图?

如何为android中每个不同的屏幕尺寸定义dimens.xml?

如何为每个 select2 选项使用不同的颜色?

如何为 Objective-C 中的每个单元格设置不同的图像?

如何为每个测试模拟不同的 useLocation 值?

如何为数组/ JavaScript中的每个项目创建不同的按钮