我正在使用FlatButton并通过属性
FlatButton(
splashColor: Colors.transparent,
highlightColor: Colors.transparent,
child: ...,
)
Run Code Online (Sandbox Code Playgroud)
该文件说FlatButton将变得过时,并使用TextButton替代,但它并不需要splashColor或highlightColor性质
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)
我怎样才能做到这一点?谢谢
我有一个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) 如何滚动到列表视图中的特殊小部件?例如,如果我按下特定按钮,我想自动滚动到ListView中的某个Container.
ListView(children: <Widget>[
Container(...),
Container(...), #scroll for example to this container
Container(...)
]);
Run Code Online (Sandbox Code Playgroud) 我正在尝试将系统状态栏的颜色更改为黑色.配置似乎被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) 我有一个ListView带ListTile。每个ListTile都有一个titlewith Text、subtitlewithText和leadingwith Image。
现在,图像太大并且垂直延伸到下一行,与那里的图像重叠。
如何确保图像保持在边界内?
编辑:
我不想给图像一个固定的大小,而是让它调整到由标题+副标题的固有高度给出的列表图块的高度。
我想创建一系列可以垂直滚动的表格,每个表格的行/列数可能不同。
在每个表中,我希望将最左边的列冻结到位,并且该表中的其余列可以水平滚动,以防有许多列不适合屏幕宽度。看截图:
我最初的计划是使用ListView在表格之间进行页面级别的垂直滚动,并且在每个表格内,有一行列,其中第一列是静态宽度,其余列包含在水平滚动的ListView中. 我从 Flutter 得到的错误并没有帮助我确定我需要做什么,但它显然与必须在子 Widget 上设置边界有关。
错误:(通过用固定高度的容器包装水平 ListView 并收缩包装 ListView 来修复 7/9/19)
在 performResize() 期间抛出了以下断言:水平视口的宽度没有限制。视口在滚动方向上扩展以填充其容器。在这种情况下,水平视口被赋予无限量的水平空间来扩展。当可滚动小部件嵌套在另一个可滚动小部件中时,通常会发生这种情况。如果此小部件始终嵌套在可滚动小部件中,则无需使用视口,因为始终有足够的水平空间供子项使用。在这种情况下,请考虑改用 Row。否则,请考虑使用“shrinkWrap”属性(或 ShrinkWrappingViewport)将视口的宽度调整为其子项宽度的总和。
新错误 7/9/19:
布局期间抛出以下消息:A RenderFlex 在右侧溢出了 74 个像素。溢出的 RenderFlex 的方向为 Axis.horizontal。渲染中溢出的 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) 我一直在研究 SliverAppBar、CustomScrollView、NestedScrollView、SliverPersistentHeader 等。我找不到一种方法来构建类似 Instagram 用户个人资料屏幕的标题,其中只有标签栏被固定。屏幕的主体是一个 TabBarView,每个窗格都有一个可滚动的列表。
使用 SliverAppBar,可以很容易地在底部参数中添加 TabBar。但我想在 TabBar 上方有一个未知/可变高度的额外小部件。当页面滚动时,额外的小部件应该滚动到一边,然后 TabBar 是固定在屏幕顶部的。
我所能管理的只是标签栏之前的固定内容和固定标签栏。我无法让标题向上滚动并将 贴TabBar在AppBar.
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