标签: flutter-layout

Flutter TextButton splashColor 属性

我正在使用FlatButton并通过属性

FlatButton(
      splashColor: Colors.transparent,
      highlightColor: Colors.transparent,
      child: ..., 
)
Run Code Online (Sandbox Code Playgroud)

文件说FlatButton将变得过时,并使用TextButton替代,但它并不需要splashColorhighlightColor性质

TextButton(                  
    splashColor: Colors.transparent,
    highlightColor: Colors.transparent,
    child: ...,       
)
Run Code Online (Sandbox Code Playgroud)

不起作用。不允许

我也试过这样

TextButton(            
  style: ButtonStyle(
    splashColor: Colors.transparent,
    highlightColor: Colors.transparent,
  ),
  child: ..., 
)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢

flutter flutter-layout flutter-web

17
推荐指数
5
解决办法
5126
查看次数

在 AlertDialog 小部件顶部显示 SnackBar

我有一个AlertDialog小部件,当您点击其文本时,它会显示 SnackBar。SnackBar 当前显示AlertDialog在屏障后面的背景中。我希望 Snackbar 显示在透明AlertDialog屏障的顶部。我正在寻求的行为可以在 Flutter 中实现吗?我创建了一个全新的 Flutter 应用程序,仅包含用于说明下面用例的相关代码以及屏幕截图。

Main.dart 要点

@override
Widget build(BuildContext context) {
  WidgetsBinding.instance!.addPostFrameCallback((_) async {
    showDialog(
      context: context,
      builder: (BuildContext dialogContext) => AlertDialog(
        content: GestureDetector(
          onTap: () {
            ScaffoldMessenger.of(dialogContext).showSnackBar(SnackBar(
              content: const Text('snack'),
              duration: const Duration(seconds: 1),
              action: SnackBarAction(
                label: 'ACTION',
                onPressed: () {},
              ),
            ));
          },
          child: Center(
            child: Text('Show SnackBar!'),
          ),
        ),
      ),
    );
  });
  // This method is rerun every time setState is called, for instance as done …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

17
推荐指数
3
解决办法
2万
查看次数

Listview滚动到小部件

如何滚动到列表视图中的特殊小部件?例如,如果我按下特定按钮,我想自动滚动到ListView中的某个Container.

ListView(children: <Widget>[
  Container(...),
  Container(...), #scroll for example to this container 
  Container(...)
]);
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout

16
推荐指数
10
解决办法
8347
查看次数

我如何或在何处更改系统状态栏Flutter框架

我正在尝试将系统状态栏的颜色更改为黑色.配置似乎被AppBar类覆盖.我可以通过分配主题来实现我想要的:ThemeData.dark()在创建Material App时,然后指定一个appBar attribute.但我不想要一个AppBar,并且这样做也会改变所有的字体颜色.

一种可能的解决方案是将ThemeData.bright()继承到新类中,然后添加仅更改系统状态栏的内容

setSystemUIOverlayStyle
Run Code Online (Sandbox Code Playgroud)

然后我需要指定AppBar并让它以某种方式隐形?

https://docs.flutter.io/flutter/services/SystemChrome/setSystemUIOverlayStyle.html

main.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:english_words/english_words.dart';
import 'layout_widgets.dart' as layout_widgets;

class RandomWords extends StatefulWidget {
  @override
  createState() => new RandomWordsState();
}
class RandomWordsState extends State<RandomWords> {
  final _suggestions = <WordPair>[];
  final _saved = new Set<WordPair>();
  final _biggerFont = const TextStyle(fontSize: 18.0);

  void _pushSaved() {
     Navigator.of(context).push(
       new MaterialPageRoute(
           builder: (context) {
             final tiles = _saved.map((pair) {
               return new ListTile(
                 title: new Text(pair.asPascalCase,style:_biggerFont)
               );
              }
             );
             final divided = ListTile.divideTiles( …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

16
推荐指数
4
解决办法
9002
查看次数

如何在flutter中创建工具栏搜索视图

我需要在我的app工具栏中实现searchview来实现列表视图列表过滤器.像下面的图像,我搜索很多仍然没有得到正确的答案.任何帮助将不胜感激,谢谢你提前.在此输入图像描述

dart searchview flutter flutter-layout

16
推荐指数
4
解决办法
2万
查看次数

是否可以使 Flutter 中的字符具有相同的宽度?

如下图所示,文本具有相同数量的字符,但由于数字“1”比“5”和“2”更细,因此两个文本的宽度不同。

我如何在 Flutter 中调整它?

的

dart flutter flutter-layout

16
推荐指数
1
解决办法
2737
查看次数

ListTile 中的前导图像溢出

我有一个ListViewListTile。每个ListTile都有一个titlewith TextsubtitlewithTextleadingwith Image

现在,图像太大并且垂直延伸到下一行,与那里的图像重叠。

如何确保图像保持在边界内?

编辑:

我不想给图像一个固定的大小,而是让它调整到由标题+副标题的固有高度给出的列表图块的高度。

flutter flutter-layout flutter-image

16
推荐指数
2
解决办法
3万
查看次数

如何在 Flutter 中创建带有固定列的水平滚动表?

我想创建一系列可以垂直滚动的表格,每个表格的行/列数可能不同。

在每个表中,我希望将最左边的列冻结到位,并且该表中的其余列可以水平滚动,以防有许多列不适合屏幕宽度。看截图:

例子

我最初的计划是使用ListView在表格之间进行页面级别的垂直滚动,并且在每个表格内,有一行列,其中第一列是静态宽度,其余列包含在水平滚动的ListView中. 我从 Flutter 得到的错误并没有帮助我确定我需要做什么,但它显然与必须在子 Widget 上设置边界有关。

错误:(通过用固定高度的容器包装水平 ListView 并收缩包装 ListView 来修复 7/9/19)

在 performResize() 期间抛出了以下断言:水平视口的宽度没有限制。视口在滚动方向上扩展以填充其容器。在这种情况下,水平视口被赋予无限量的水平空间来扩展。当可滚动小部件嵌套在另一个可滚动小部件中时,通常会发生这种情况。如果此小部件始终嵌套在可滚动小部件中,则无需使用视口,因为始终有足够的水平空间供子项使用。在这种情况下,请考虑改用 Row。否则,请考虑使用“shrinkWrap”属性(或 ShrinkWrappingViewport)将视口的宽度调整为其子项宽度的总和。

新错误 7/9/19:

布局期间抛出以下消息:A RenderFlex 在右侧溢出了 74 个像素。溢出的 RenderFlex 的方向为 Axis.horizo​​ntal。渲染中溢出的 RenderFlex 边缘已用黄黑条纹图案标记。这通常是由于 RenderFlex 的内容太大造成的。考虑应用 flex 因子(例如使用 Expanded 小部件)来强制 RenderFlex 的子项适应可用空间,而不是调整到它们的自然大小。这被视为错误情况,因为它表明存在无法看到的内容。如果内容合法地大于可用空间,请考虑在将其放入 flex 之前使用 ClipRect 小部件对其进行剪辑,或者使用可滚动容器而不是 Flex,就像一个列表视图。有问题的特定 RenderFlex 是:
RenderFlex#9bf67 relayoutBoundary=up5 溢出
创建者:行?重绘边界-[<0>] ? 索引语义?
通知监听器?活着 ?自动保持活动?白名单?
SliverPadding ? 视口?忽略指针-[GlobalKey#74513] ? 语义?听众??
parentData:(可以使用大小)
约束:BoxConstraints(w=404.0, 0.0<=h<=Infinity)
大小:Size(404.0, 300.0)
方向:水平
mainAxisAlignment:开始
mainAxisSize:max
crossAxisAlignment:center
textDirection:ltr

这是我最初遇到的问题,然后被报告的第一个问题转移到一边;我不明白为什么我的 ListView 没有创建可滚动容器。

代码:

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-layout

16
推荐指数
1
解决办法
2万
查看次数

找出 ListView 中的哪些项目可见

如何找出当前visibleinvisible在 中的项目ListView
例如,我有 100 个项目ListView,当我滚动到屏幕或列表顶部时,我想检测哪些项目从视口中出现或消失。

插图:

在此处输入图片说明

dart flutter flutter-layout flutter-listview

16
推荐指数
2
解决办法
8859
查看次数

Flutter 中的 Instagram 个人资料标题布局

我一直在研究 SliverAppBar、CustomScrollView、NestedScrollView、SliverPersistentHeader 等。我找不到一种方法来构建类似 Instagram 用户个人资料屏幕的标题,其中只有标签栏被固定。屏幕的主体是一个 TabBarView,每个窗格都有一个可滚动的列表。

使用 SliverAppBar,可以很容易地在底部参数中添加 TabBar。但我想在 TabBar 上方有一个未知/可变高度的额外小部件。当页面滚动时,额外的小部件应该滚动到一边,然后 TabBar 是固定在屏幕顶部的。

在此处输入图片说明

我所能管理的只是标签栏之前的固定内容和固定标签栏。我无法让标题向上滚动并将 贴TabBarAppBar.

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: MyApp()));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 2,
      child: Scaffold(
        appBar: AppBar(
          title: Text("pabloaleko"),
        ),
        body: CustomScrollView(
          physics: const BouncingScrollPhysics(),
          slivers: <Widget>[
            SliverToBoxAdapter(
              child: SafeArea(
                child: Text("an unknown\namount of content\n goes here in the header"),
              ),
            ),
            SliverToBoxAdapter(
              child: TabBar(
                tabs: [
                  Tab(child: Text('Days', style: TextStyle(color: Colors.black))), …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-layout customscrollview flutter-sliverappbar

16
推荐指数
1
解决办法
4898
查看次数