我正在尝试构建一个具有给定宽度和高度的图像网格,将它们包裹在里面Containers,并fit: BoxFit.fill在选择图像时使用能够设置边框(我不关心保持图像长宽比,我想每个容器的总宽度和高度相同)。
问题是,当图像被点击后重新绘制时,我注意到出现白色闪烁。当图像较少时,这似乎不会发生,但当图像超过 15 个时,就会出现噪声。
我尝试添加gaplessPlayback: true图像小部件,正如我在此处找到的那样,但这并没有解决我的问题。
这是显示我的问题的 gif(我使用了 16 张图像,尺寸为 1920x1080):
编辑:
我忘记指出这只是一个例子,我在代码中使用了边框,但就我而言,我还想向容器添加填充以使图像变小(就像在 android 照片库中一样),这意味着点击的图像每次都应该重新绘制。
这是我的代码:
import 'dart:io';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
void main() {
// See https://github.com/flutter/flutter/wiki/Desktop-shells#target-platform-override
debugDefaultTargetPlatformOverride = TargetPlatform.fuchsia;
runApp(new MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(body: ImageGridView()),
);
}
}
class ImageGridView extends StatelessWidget {
List<File> _fileList = [];
ImageGridView(){
_fileList = [
File('C:/flutter/img/1.jpg'),
File('C:/flutter/img/3.jpg'),
File('C:/flutter/img/4.jpg'),
File('C:/flutter/img/5.jpg'), …Run Code Online (Sandbox Code Playgroud) 使用 flutter 检查器,我无法找到小部件的属性列表,例如字体大小、字体系列、边框颜色、填充、边距...例如,在小Text部件中可用的属性有textDirection、textAlign、size和更多属性,例如在下面的屏幕截图中:
我想查看所有计算属性,就像浏览器一样:
当然它们是不同的工具,但我想知道是否有办法检查更多属性。
我还找到了一个基于代码的解决方案,可以在渲染后访问小部件属性,例如这个问题: How to get the TextFormField text color,fontsize, etc usingcontroller in flutter?
这是实现结果的最佳方式吗?是否可以以Key允许访问小部件属性而不使用自定义小部件的方式使用 s (我想保存对 、 等小部件的引用Text并Row打印它们的所有属性)?
我还尝试使用toDiagnosticsNode和toStringDeep方法如下(_textWidget当然是Text上面创建的小部件,当我单击按钮时调用此代码):
var test = _textWidget.toDiagnosticsNode().getProperties();
if (test != null && test.isNotEmpty) {
test.forEach((element) {
print(element.toStringDeep());
});
}
Run Code Online (Sandbox Code Playgroud)
是否可以使用递归函数来获取所有属性?我只能看到该代码显示的文本。
我正在尝试构建一个全宽度DataTable,Flutter左侧有一个固定宽度的列,另外两列应该将剩余的列分开。
但是,即使左侧标题文本被截断,中间列和右侧列也不会占用剩余宽度,如下所示:
当文本太宽而无法在单行中显示时,我还想将文本换行到单元格中,但Wrap无法按预期工作。
我该如何解决我的问题?
这是代码:
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Column(children: [
Expanded(
child: Container(
constraints: BoxConstraints.expand(width: double.infinity),
child: SingleChildScrollView(
child: DataTable(
headingRowHeight: 32,
dataRowHeight: 24,
columns: [
DataColumn(
label: ConstrainedBox(
constraints: BoxConstraints(
maxWidth: 20,
minWidth: 20,
),
child: Text('Short column'),
),
),
DataColumn(label: Text('Long column')),
DataColumn(label: Text('Long column')),
],
rows: [
DataRow(
cells: [ …Run Code Online (Sandbox Code Playgroud) 我正在用 Java 构建一个简单的 2D 游戏。
我正在使用 JFrame 类,但我认为宽度和高度不是我指定的,或者图形可能不正确。
以下是我的一些代码片段:
public final static int WIDTH = 600, HEIGHT = 900;
Run Code Online (Sandbox Code Playgroud)
JFrame frame = new JFrame();
frame.setSize(WIDTH, HEIGHT);
Run Code Online (Sandbox Code Playgroud)
g.setColor(Color.BLACK);
g.fillRect(0, 0, WIDTH, HEIGHT - 10);
Run Code Online (Sandbox Code Playgroud)
JFrame 显示黑色背景。然而,根据我给 fillRect 函数的参数,框架底部仍然应该有一个 10px 高的白色细长条。不是这种情况。白色条带仅在从框架高度降低 30 像素后才真正开始显示。
谢谢你的帮助。