野の

文章 评论 浏览 30

野の 2025-02-17 19:26:47

您是否尝试在获得Coreuser时尝试包括蜜蜂
https://learn.microsoft.com/en-en-en-us/ EF/EF6/QUERYING/RELASSED-DATA

Have you tried to Include the BEEUser when getting the CoreUser
https://learn.microsoft.com/en-us/ef/ef6/querying/related-data

扩展的身份用户表null c#

野の 2025-02-16 21:44:24

那是因为没有足够的内容来填充整个屏幕视口高调。

您可以应用最小值:100VH html 和/或 body 上,然后应用高度:100%在两个上。

vh - 单位代表视口高,其价值为百分比(以其独特的方式)。 100VH 是视口屏幕的100%, 50VH 为50%,依此类推。

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    min-height: 100vh;
}

body {
    display: flex;
    flex-direction: column;
}

.ribbon {
    background: beige;
    height: 10vh;
}

.outer-col {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.inner-col {
    display: flex;
    flex-direction: row;
    flex: 1 1 0;
    height: 100%;
}

.inner-row {
    flex: 6;
}

.canvas {
    background: skyblue;
    min-height: 70vh;
    height: 100%;
}

.left {
    /* display: none; */
    background: beige;
    flex: 1;
}

.right {
    /* display: none; */
    background: beige;
    flex: 1;
}

.bottom {
    display: none;
    background: beige;
    height: 20vh;
}

.ribbon, .bottom, .canvas, .ribbon, .left, .right {
    border-style: solid;
}
<!DOCTYPE html>
<html>
<head>
    <title>test</title>
    <script src="https://cdn.jsdelivr.net/npm/interactjs/dist/interact.min.js"></script>
    <script src="./script.js"></script>
    <link rel="stylesheet" href="styles.css">
</head>
<body>

    <div class="ribbon"></div>
    <div class="outer-col">
        <div class="inner-col">
            <div class="left"></div>
            <div class="inner-row">
                <div class="canvas"></div>
                <div class="bottom"></div>
            </div>
            <div class="right"></div>
        </div>
    </div>
    
</body>
</html>

That's because there's not enough content to fill up the entire screens viewport-height.

You can apply min-height: 100vh on html and/or body, and then apply height: 100% on both .outer-col and .inner-col to let them take the remaining space that is set with 100vh.

The vh-unit stands for viewport height and its value is in percentages (in its own unique way). 100vh is 100% of the viewport screen, 50vh is 50% and so on.

html, body {
    margin: 0;
    padding: 0;
    height: 100%;
    min-height: 100vh;
}

body {
    display: flex;
    flex-direction: column;
}

.ribbon {
    background: beige;
    height: 10vh;
}

.outer-col {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.inner-col {
    display: flex;
    flex-direction: row;
    flex: 1 1 0;
    height: 100%;
}

.inner-row {
    flex: 6;
}

.canvas {
    background: skyblue;
    min-height: 70vh;
    height: 100%;
}

.left {
    /* display: none; */
    background: beige;
    flex: 1;
}

.right {
    /* display: none; */
    background: beige;
    flex: 1;
}

.bottom {
    display: none;
    background: beige;
    height: 20vh;
}

.ribbon, .bottom, .canvas, .ribbon, .left, .right {
    border-style: solid;
}
<!DOCTYPE html>
<html>
<head>
    <title>test</title>
    <script src="https://cdn.jsdelivr.net/npm/interactjs/dist/interact.min.js"></script>
    <script src="./script.js"></script>
    <link rel="stylesheet" href="styles.css">
</head>
<body>

    <div class="ribbon"></div>
    <div class="outer-col">
        <div class="inner-col">
            <div class="left"></div>
            <div class="inner-row">
                <div class="canvas"></div>
                <div class="bottom"></div>
            </div>
            <div class="right"></div>
        </div>
    </div>
    
</body>
</html>

当侧divs消失时,最佳方法可以使中间div大小?

野の 2025-02-16 19:31:16

在您的init.py文件中,您已经在模块级别以及create_app()中创建了芹菜对象。您可以使用烧瓶扩展的模式将烧瓶应用程序添加到芹菜中,以此类知:
在Custom.celery.py中的文件中,

来自芹菜导入芹菜
导入瓶

class FlaskCelery(Celery):
    """Extend celery task to use flask app."""
    def __init__(self, *args, **kwargs):
        """Def initialization fnx."""
        super(FlaskCelery, self).__init__(*args, **kwargs)
        self.patch_task()

        if "app" in kwargs:
            self.init_app(kwargs["app"])

    def patch_task(self):
        """Extend celery task."""
        TaskBase = self.Task
        _celery = self

        class ContextTask(TaskBase):
            """Extend taskbase."""
            abstract = True

            def __call__(self, *args, **kwargs):
                """Class caller definition."""
                if flask.has_app_context():
                    return TaskBase.__call__(self, *args, **kwargs)
                else:
                    with _celery.app.app_context():
                        return TaskBase.__call__(self, *args, **kwargs)

        self.Task = ContextTask

    def init_app(self, app):
        """Initialize celery with app."""
        self.app = app

extensions.py文件中的

celery = FlaskCelery(broker='redis://127.0.0.1:6379/0', backend='redis://127.0.0.1:6379/0')

:然后在init.py文件中:

from extensions import celery


def create_app():
    app: Flask = Flask(__name__)
    app.config.from_object(config_class)
    logging.basicConfig(level=logging.INFO)
    debug = app.config['DEBUG']
    if debug:
        app.logger.setLevel(logging.INFO)

    celery.init_app(app)
    return app

In your init.py file, you've created celery object at module level and also in the create_app(). You could use the pattern of flask extensions to add the flask app to celery in your factory pattern like this:
In custom.celery.py file

from celery import Celery
import flask

class FlaskCelery(Celery):
    """Extend celery task to use flask app."""
    def __init__(self, *args, **kwargs):
        """Def initialization fnx."""
        super(FlaskCelery, self).__init__(*args, **kwargs)
        self.patch_task()

        if "app" in kwargs:
            self.init_app(kwargs["app"])

    def patch_task(self):
        """Extend celery task."""
        TaskBase = self.Task
        _celery = self

        class ContextTask(TaskBase):
            """Extend taskbase."""
            abstract = True

            def __call__(self, *args, **kwargs):
                """Class caller definition."""
                if flask.has_app_context():
                    return TaskBase.__call__(self, *args, **kwargs)
                else:
                    with _celery.app.app_context():
                        return TaskBase.__call__(self, *args, **kwargs)

        self.Task = ContextTask

    def init_app(self, app):
        """Initialize celery with app."""
        self.app = app

In extensions.py file:

celery = FlaskCelery(broker='redis://127.0.0.1:6379/0', backend='redis://127.0.0.1:6379/0')

then in init.py file:

from extensions import celery


def create_app():
    app: Flask = Flask(__name__)
    app.config.from_object(config_class)
    logging.basicConfig(level=logging.INFO)
    debug = app.config['DEBUG']
    if debug:
        app.logger.setLevel(logging.INFO)

    celery.init_app(app)
    return app

芹菜未能连接到烧瓶中的redis

野の 2025-02-16 16:50:10
volatile pMyStruct_t pStruct;

此代码等同于此:

myStruct_t* volatile pStruct;

与此相差有所不同:

volatile myStruct_t* pStruct;

其中的差异,哪个变量将是波动的。
在第一种情况下,指向结构本身的指针将是挥发性的。
在第二种情况下,结构对象将是挥发性的,而不是指针。
在我看来,第二选择是您的。无论如何,使指针波动几乎没有意义。

您可以用挥发性关键字指针:

typedef volatile struct myStruct
{
    //Some attributes
}myStruct_t, *pMyStruct_t;

但是在这种情况下,struct将始终是挥发性的,我不知道这对您来说是可以接受的。

volatile pMyStruct_t pStruct;

This code equivalent to this:

myStruct_t* volatile pStruct;

There is a difference with this:

volatile myStruct_t* pStruct;

Difference in that, which variable will be volatile.
In first case, pointer to the struct itself will be volatile.
In second case, struct object will be volatile, not pointer.
It seems to me, that second choice is yours. Any way, there is little sense to make pointer volatile.

You can typedef pointer with the volatile keyword:

typedef volatile struct myStruct
{
    //Some attributes
}myStruct_t, *pMyStruct_t;

But in this case, struct will always be volatile, I don't know is this acceptable for you.

预选赛被丢弃在结构指针上

野の 2025-02-16 15:55:03

我将在这里与Matt非常略微不同意。我想指出的是,“历史重写”(通过rebase或任何其他方法,我们删除或替换一些现有的提交用一些新的和改良的替代品)都需要所有使用现有的当事方之间的潜在协议提交。

也就是说,假设有一个名为“提案”的分支,许多人阅读,有些人偶尔会用 git push 编写。各方都同意任何给定的提案都可以撤回或修改。在这种情况下,不依赖早期提案的建议将被重新审议。 do 取决于早期建议的建议将被删除或重写。由于每个人都已经提前同意了此 ,如果您决定要放弃一些建议,您只需带上当前版本的分支机构,拒绝提出建议,然后推开结果 - 除非,也就是说,放弃您的建议会损害别人的。在中,您会与其他人联系(也许是通过电子邮件或电话),而你们两个可以解决该怎么做。

如果您要提出建议,并且运行 git提取,并发现该分支已重写为 emove 您依赖的建议,则您要么采用该建议您自己 - 现在是您的 责任 - 并将其放回原处,或者您与原始提案的所有者联系并确定该怎么做。

如果您将要提出不取决于其他人的建议,那么您可以自由获取,添加和推动。

如果提案很复杂,需要多个用户来同意和/或需要一个长寿的分支,则您(以及其他参与的人)创建一个单独的“提案分支”并开始使用它。该提案的所有当事方都同意或不同意这个分支也具有某些重写规则。这样,每个人都会提前准备 的一切。

如果您有一个“私人”提案,该提案进入共享存储库(以便在需要/时,它可以成为共享的建议),而您是此时唯一从事它的人,您只需要同意一个人 - 自己 - 无论选择重写它。这通常很容易。

I'll disagree very slightly with Matt here. The way I like to put it is that "history rewriting" (via rebase or any other method where we remove or replace some existing commit with some new-and-improved replacement) requires in-advance agreement between all parties that are using the existing commits.

That is, suppose there's a branch named "proposal", that many people read and some occasionally write with git push. It's agreed, by all parties, that any given proposal can be withdrawn or modified. Proposals that don't depend on earlier proposals will just be rebased in this case. Proposals that do depend on earlier proposals will be dropped or rewritten. Since everyone has agreed to this in advance, if you decide you wish to drop some proposal you've made, you simply bring in the current version of the branch, rebase to drop your proposal, and push the result—unless, that is, dropping your proposal damages someone else's. In that case you contact the someone else (by email perhaps, or phone) and the two of you work out what to do.

If you're about to make a proposal and you run git fetch and find that the branch has been rewritten to remove a proposal that you depended on, you either adopt that proposal yourself—it's now your responsibility—and put it back, or you contact the owner of the original proposal and work out what to do.

If you're about to make a proposal that doesn't depend on anyone else's, you're free to fetch, add, and push.

If a proposal is complex and needs multiple users to agree and/or needs a long-lived branch, you (and anyone else involved) create a separate "proposal branch" and begin using it. All parties to the proposal agree, or don't, that this branch also has certain rewrite rules. This way everyone is prepared in advance for whatever comes down the line.

If you have a "private" proposal that goes into a shared repository (so that it can become a shared proposal if/as needed), and you're the only one working on it at this time, you merely need to agree with one person—yourself—whenever you choose to rewrite it. This is usually fairly easy. ????

当两个人在处理它们并同时更改犯罪历史历史时,如何同步git存储库?

野の 2025-02-16 07:05:34

如果您需要Cookie身份验证(在MVC项目中设置),则可以使用ReadToken()方法来读取令牌内的索赔,并生成索赔认同
HttpContext.SignInAsync()method

                var jsonToken = new JwtSecurityTokenHandler().ReadToken(token) as JwtSecurityToken;
                var username = jsonToken.Claims.FirstOrDefault(m => m.Type == ClaimTypes.Name).Value;
                 .............
                 //add other logic
                if (username==user.Name)
                {
                    var claims = new Claim[]
                    {
                    new Claim(ClaimTypes.Name, user.Name),
                     };
                    var claimsIdentity = new ClaimsIdentity(claims);
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity));
                }

if you want JWT Authentication in your MVC project,you could set as below :

services.AddAuthentication(options =>
            {
                
                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            })
            
            .AddJwtBearer(options =>
             {
                 options.TokenValidationParameters = new TokenValidationParameters
                 {
                     ......
                 };
                 options.Events = new JwtBearerEvents
                 {

                     OnMessageReceived = context =>
                     {
                         var accessToken = context.Request.Cookies["token"];
                         
                         if (!string.IsNullOrEmpty(accessToken))
                         {
                             context.Token = accessToken;
                         }

                         return Task.CompletedTask;
                     }
                 };

add the token in your login controller:

Response.Cookies.Append("token", token);

If you want cookie authentication(as you setted in your MVC project),you could use ReadToken() method to read the claims inside the token, and generate the ClaimsIdentity which is required in
HttpContext.SignInAsync()method

                var jsonToken = new JwtSecurityTokenHandler().ReadToken(token) as JwtSecurityToken;
                var username = jsonToken.Claims.FirstOrDefault(m => m.Type == ClaimTypes.Name).Value;
                 .............
                 //add other logic
                if (username==user.Name)
                {
                    var claims = new Claim[]
                    {
                    new Claim(ClaimTypes.Name, user.Name),
                     };
                    var claimsIdentity = new ClaimsIdentity(claims);
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity));
                }

if you want JWT Authentication in your MVC project,you could set as below :

services.AddAuthentication(options =>
            {
                
                options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
            })
            
            .AddJwtBearer(options =>
             {
                 options.TokenValidationParameters = new TokenValidationParameters
                 {
                     ......
                 };
                 options.Events = new JwtBearerEvents
                 {

                     OnMessageReceived = context =>
                     {
                         var accessToken = context.Request.Cookies["token"];
                         
                         if (!string.IsNullOrEmpty(accessToken))
                         {
                             context.Token = accessToken;
                         }

                         return Task.CompletedTask;
                     }
                 };

add the token in your login controller:

Response.Cookies.Append("token", token);

.NET6-使用JWT令牌登录用户

野の 2025-02-16 03:47:07

您可以使用 sum() sumproduct()或 max> max() sum() sum() > row()函数

”在此处输入图像说明“

•单元格中使用的公式 b2

=--(MAX((A2='Sheet B'!$A$2:$F$7)*ROW('Sheet B'!$A$2:$F$7))>0)

上面公式返回a boolean logic ,它变成 1 &amp; 0 使用 double Unary 。然后自定义格式为

[=1]"Match";[=0]"No Match";

•也许您可以将上述包装在中,if(),在单元 c2

=IF(MAX((A2='Sheet B'!$A$2:$F$7)*ROW('Sheet B'!$A$2:$F$7))>0,"Match","No Match")

中公式,基于您的Excel版本需要按 ctrl + shift + enter o365 &amp; excel 2021 用户无需按 ctrl + shift + enter

You may try this way, using either SUM() or SUMPRODUCT() or MAX() with ROW() Function

enter image description here

• Formula used in cell B2

=--(MAX((A2='Sheet B'!$A$2:$F$7)*ROW('Sheet B'!$A$2:$F$7))>0)

The above formula returns a Boolean Logic which is turned into 1 & 0 using a double unary. And then custom formatted as

[=1]"Match";[=0]"No Match";

• Perhaps you can wrap the above within an IF() as well, in cell C2

=IF(MAX((A2='Sheet B'!$A$2:$F$7)*ROW('Sheet B'!$A$2:$F$7))>0,"Match","No Match")

Note: Since its an array formula, based on your excel version need to press CTRL+SHIFT+ENTER , O365 & Excel 2021 Users don't need to press CTRL+SHIFT+ENTER!

从表A中的数据A的查找值。BENGB上的数据位于多列中

野の 2025-02-15 17:59:40

假设您使用的是Visual Studio项目,则可以编辑项目文件以启用控制台窗口。注意:您的MainWindow仍将显示。控制台窗口将显示所有控制台。编写数据。

右键单击“解决方案资源管理器”中的项目,然后选择“编辑项目文件”。
在PropertyGroup下,将OutputType从Winexe更改为Exe,并添加以下元素以使其在.NET的非框架版本上使用。

<DisableWinExeOutputInference>true</DisableWinExeOutputInference>

这就是应该的样子。

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    ...
    <DisableWinExeOutputInference>true</DisableWinExeOutputInference>
  </PropertyGroup>

Assuming you're using a visual studio project, you can edit the project file to enable the console window. NOTE: Your MainWindow will still be shown as well. The console window will display all Console.Write data as expected.

Right click on the project in Solution Explorer and select Edit Project File.
Under PropertyGroup change OutputType from WinExe to just Exe and add the following element to make it work on non Framework versions of .NET.

<DisableWinExeOutputInference>true</DisableWinExeOutputInference>

This is what it should look like.

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    ...
    <DisableWinExeOutputInference>true</DisableWinExeOutputInference>
  </PropertyGroup>

使用Avalonia时无法查看控制台/记录输出

野の 2025-02-14 00:55:40

您可以观察到要显示,这意味着您必须使用异步管:

<mat-card-subtitle>Marca: {{(selectedProduct|async)?.marca}}</mat-card-subtitle>

将订阅选定的产品,然后显示MARCA属性的值。

或者,您必须将其与本地变量一起使用,但要正确命名:

*ngIf="selectedProduct | async as product"

然后在HTML块中使用它:

 <mat-card-subtitle>Marca: {{product?.marca}}</mat-card-subtitle>

You have an Observable that you want to display, this means that you have to use the async pipe:

<mat-card-subtitle>Marca: {{(selectedProduct|async)?.marca}}</mat-card-subtitle>

Will subscribe to the selectedProduct and then display the value of the marca attribute.

Or you have to use it with your local variable, but name it correctly:

*ngIf="selectedProduct | async as product"

and then use it in the HTML block:

 <mat-card-subtitle>Marca: {{product?.marca}}</mat-card-subtitle>

角:路由&#x2B;可观察&#x2B;绑定= NGTSC(2339)

野の 2025-02-13 20:38:59
import classes from './all-posts.module.css'
import PostsGrid from './posts-grid'

function AllPosts(props) {
    // console.log(props)
    return (
    <section className={classes.posts}>
        <h1>All posts</h1>
        <PostsGrid posts={props.posts} />
    </section>
    )
}
export default AllPosts;
import classes from './all-posts.module.css'
import PostsGrid from './posts-grid'

function AllPosts(props) {
    // console.log(props)
    return (
    <section className={classes.posts}>
        <h1>All posts</h1>
        <PostsGrid posts={props.posts} />
    </section>
    )
}
export default AllPosts;

传递到组件时的道具不确定

野の 2025-02-13 15:27:24

当您运行Scully时,它需要服务您的应用程序。当您使用CLI的基本HREF选项时,它将更新index.html,但是目标仍然是 ./ dist/myApp ,该被复制到Scully Server中并且会失败。 (因为没有子文件夹)。

简单的解决方案是使用 scully-base-base-href---改写
插件,而不是Angular CLI选项。

另外,您可以对自己的垃圾箱进行一些重命名,但这至少令人困惑。

When you run Scully, it needs to serve your application. When you use the base-href option of the CLI, it will update the index.html, but the destination is still ./dist/myApp Which gets copied into the Scully server and will fail. (as there is no subfolder).

The easy solution is to use the scully-base-href-rewrite
plugin, instead of the Angular CLI option.

Also, you can do some renaming of your dist-folder, but that is confusing at least.

使用Scully的子目录来处理UnknownRoute

野の 2025-02-12 14:20:56

根据

package main

import "syscall/js"

func main() {
    wait := make(chan struct{}, 0)
    js.Global().Set("onInput", js.FuncOf(onInput))
    <-wait
}

// note that there is no export as we registered this function in global
func onInput(this js.Value, args []js.Value) interface{} {
    return js.ValueOf(map[string]interface{}{
        "key":    60,
        "remove": 1,
    })
}

在您的JS代码中,仅使用 oninput ,没有 ismmmodule.Instance.Exports.exports prefix

According to example at tinygo github you can try something like this:

package main

import "syscall/js"

func main() {
    wait := make(chan struct{}, 0)
    js.Global().Set("onInput", js.FuncOf(onInput))
    <-wait
}

// note that there is no export as we registered this function in global
func onInput(this js.Value, args []js.Value) interface{} {
    return js.ValueOf(map[string]interface{}{
        "key":    60,
        "remove": 1,
    })
}

And in your js code use just onInput, without wasmModule.instance.exports prefix

如何从Tinygo WebAssembly目标返回对象

野の 2025-02-12 04:47:38

我也遇到了这个错误。就我而言,我通过在 __ INT __。py

我的情况

init .py b.py

from .b import B, C
form .a import A

b.py b.py

from <module name of __init__.py> import A

a.py

class A():
  a = 42

my解决方案

int .py

form .a import A
from .b import B, C

I encounter this error too. In my case, I fixed it by swapping import-statements in the __init__.py

My situiation

init.py

from .b import B, C
form .a import A

b.py

from <module name of __init__.py> import A

a.py

class A():
  a = 42

My solution

init.py

form .a import A
from .b import B, C

使用相互或循环(环状)进口时会发生什么?

野の 2025-02-12 03:33:43

SOQL can handle queries up to 100K字符。您达到了那个限制吗?

您可以将其切成2个查询吗? 选择ID,外部ID__C,Afield__c,bfield__c,... 说“直至“ m”,然后选择ID,externalId__c,mfield__c,nfield__c,nfield__c,...

还是以其他方式将它们分开,也许越来越重要?如果您可以想到不必同步的内容,您甚至可以从集成用户中隐藏某些字段(在配置文件 /权限集中删除复选框)。

SOQL can handle queries up to 100K characters. Have you hit that limit?

Can you cut it into 2 queries? SELECT Id, ExternalId__c, Afield__c, Bfield__c, ... say till "M" and then SELECT Id, ExternalId__c, Mfield__c, Nfield__c, ... ?

Or split them other way, maybe more and less important ones? You could even hide certain fields from the integration user (remove the checkboxes in Profile / Permission Set) if you can think of something that doesn't have to be synchronised.

将数据从Salesforce导入到数据映

野の 2025-02-12 00:43:44

请参阅下面的代码示例

结果

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: ListView.builder(
        shrinkWrap: true,
        itemCount: 2,
        itemBuilder: (BuildContext context, int index) {
          return Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Text(
                "List View 1 | Index : $index",
                style: const TextStyle(
                  fontSize: 20.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
              ListView.builder(
                shrinkWrap: true,
                physics: const NeverScrollableScrollPhysics(),
                itemCount: 5,
                itemBuilder: (BuildContext context, int index) {
                  return ListTile(
                    leading: const Icon(Icons.list),
                    trailing: const Text(
                      "Text",
                      style: TextStyle(color: Colors.green, fontSize: 15),
                    ),
                    title: Text(
                      "List View 2 | Index Val: $index",
                    ),
                  );
                },
              ),
            ],
          );
        },
      ),
    );
  }


Please refer to below code example

Result

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: ListView.builder(
        shrinkWrap: true,
        itemCount: 2,
        itemBuilder: (BuildContext context, int index) {
          return Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Text(
                "List View 1 | Index : $index",
                style: const TextStyle(
                  fontSize: 20.0,
                  fontWeight: FontWeight.bold,
                ),
              ),
              ListView.builder(
                shrinkWrap: true,
                physics: const NeverScrollableScrollPhysics(),
                itemCount: 5,
                itemBuilder: (BuildContext context, int index) {
                  return ListTile(
                    leading: const Icon(Icons.list),
                    trailing: const Text(
                      "Text",
                      style: TextStyle(color: Colors.green, fontSize: 15),
                    ),
                    title: Text(
                      "List View 2 | Index Val: $index",
                    ),
                  );
                },
              ),
            ],
          );
        },
      ),
    );
  }


如何在“扑朔迷离”中使用listView?

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

更多

友情链接

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文