我想要做的是在 Material Widget 中加载图像以在 ListTile 中使用它,但此资产可能不存在。
class MyImage extends StatelessWidget {
final imagePath;
MyIcon(String iconName) {
try { // check if imagePath exists. Here is the problem
imagePath = check('assets/$iconName.png/');
} catch (e, s) { // if not
imagePath = 'assets/$iconName.png/';
}
}
@override
Widget build(BuildContext context) {
return Material(...here I will load the imagePath...);
}
}
Run Code Online (Sandbox Code Playgroud)
因此,由于我使用的是无状态小部件,因此我必须事先知道图像是否存在,否则我将加载一个空值,对吗?
我对 Futter 很陌生,所以我不知道这是否是一个明显的问题
谢谢!
这就是我现在面临的问题。我有一个名为“assets”的文件夹,在该文件夹内有一个名为“no_icon.png”的图像。我已将其添加到 pubspec.yaml 中,如下所示:
flutter:
assets:
- assets/teamShields/
- assets/no_icon.png
Run Code Online (Sandbox Code Playgroud)
当我在 StatelessWidget 中执行此操作时
final imageP = File('assets/no_icon.png');
Run Code Online (Sandbox Code Playgroud)
然后在这个和一个 MaterialApp 里面:
body: Text(imageP.existsSync().toString()),
Run Code Online (Sandbox Code Playgroud)
我总是在屏幕上看到错误。
另外,如果我输入Image.asset('assets/no_icon.png'),而不是文本,我可以看到渲染的图像。
我不知道这是一个错误还是我做错了什么......
我正在尝试在 c++ 中实现一个线程,它将用于在我拍照时进行控制,但是这个简单的代码给了我一个奇怪的错误,我无法理解。这是我的代码:
#include <iostream>
#include <fstream>
#include <thread>
using namespace std;
void counter(int seconds, bool &flagTakePhoto, bool &flagThreadStart);
int main() {
bool takePhoto, threadStart;
int seconds = 1;
thread t(counter, seconds, takePhoto, threadStart);
//Some code here
}
void counter(int seconds, bool &flagTakePhoto, bool &flagThreadStart) {
while (flagThreadStart) {
this_thread::sleep_for(chrono::seconds(seconds));
flagTakePhoto = true;
}
terminate();
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
1>------ Build started: Project: Proyecto para pruebas OPENCV, Configuration:
Release x64 ------
1> Main.cpp
1>Main.cpp(46): warning C4244: 'initializing': conversion from '__int64' to 'int', …Run Code Online (Sandbox Code Playgroud)
我想将索贝尔滤镜应用于图像,但我只想将其应用于我定义的蒙版内。我知道我只能cv2.bitwise_and获取蒙版内的图像,但这也会给我蒙版和内部图像之间的边缘,索贝尔会将其检测为边界。
那么我如何将过滤器(在我的例子中cv2.Sobel(dni,cv2.CV_64F,1,0,ksize=5))应用于仅在蒙版内的图像部分?
谢谢!
我想做一个看起来像这样的应用程序
与角落上的那片。我可以制作那张幻灯片,但我的应用程序没有那个阴影。
我将我的前层包裹在一个像MDC-104示例中那样具有高度的材料宽幅内。
这是我进行切割的代码
import 'package:flutter/material.dart';
class ShapeLayer extends StatelessWidget {
final Widget frontLayer;
final Widget backLayer = Container(
color: Colors.green,
);
ShapeLayer({Key key, this.frontLayer}) : super(key: key);
@override
Widget build(BuildContext context) {
return Stack(
children: <Widget>[
backLayer,
Material(
elevation: 60.0,
shape: BeveledRectangleBorder(
borderRadius: BorderRadius.only(topLeft: Radius.circular(46.0)),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
children: <Widget>[
Expanded(child: frontLayer),
],
),
),
],
);
}
}
Run Code Online (Sandbox Code Playgroud)
我像这样使用它:
return Scaffold(
appBar: appBar,
body: ShapeLayer(frontLayer: Container(//Some stuff here)
Run Code Online (Sandbox Code Playgroud)
如您所见,它看起来很平坦,根本没有高度。
我怎样才能解决这个问题?
谢谢!
编辑:正如@SnakeyHips 所建议的,这是我的应用程序,海拔高度为 …
我想创建一个几乎无限的元素列表,但我想将列表的初始位置设置为某个特定元素。像这样的图片:
其中索引 0 是初始位置,并且该列表可能会也可能不会在两个方向上延伸很长。
我可以创建我的元素,例如:
Widget build_tile(int i){
return Container(child:Text(i.toString()));
}
Run Code Online (Sandbox Code Playgroud)
我的清单是这样的
ListView.builder(
itemBuilder: (context, i) {
return build_tile(i-offset);
},
scrollDirection: Axis.horizontal,
),
Run Code Online (Sandbox Code Playgroud)
对于图中的示例,偏移量为 2,但如何设置列表的开始位置?
太长了;如何制作像1中那样的非常长的列表 ListView以从某个元素开始?
谢谢!
我正在尝试使用 SSU 隐藏单元制作 RBM,我必须更新标准偏差。
我这样定义我的变量:
def _build_model(self):
with tf.device('/gpu:0'):
with self.graph.as_default():
...
with tf.variable_scope("visible_layer"):
self.v_clamp = tf.placeholder(name = "v_in", dtype = tf.float32, shape=[self.batch_size, self.n_visibles])
self.bv = tf.get_variable(name = "b_v", dtype = tf.float32, shape=[self.n_visibles], initializer=tf.random_uniform_initializer(maxval=0.01,minval=-0.01))
self.stddev = tf.get_variable(name = "stddev", dtype = tf.float32, shape = [1], initializer = tf.constant_initializer(float(self.stddev_)))
...
with tf.variable_scope("update_weights"):
self.optimizer = self.update_weights()
....
Run Code Online (Sandbox Code Playgroud)
其中 stddev_ 具有初始值。
我的更新功能是这样的:
def update_weights(self):
with self.graph.as_default():
with tf.device('/gpu:0'):
...
with tf.variable_scope("calc_deltas"):
...
##UPDATE STDDEV
delta_stddev = tf.multiply((2)/(self.stddev**3),
tf.subtract(tf.reduce_sum(tf.pow(tf.subtract(self.v_clamp,self.bv),2)),
tf.reduce_sum(tf.pow(tf.subtract(v_free,self.bv),2))))
#self.stddev.assing_add(delta_stddev)
self.stddev.assign_add(tf.constant(0.1,shape=[1]))
return self.stddev …Run Code Online (Sandbox Code Playgroud) 像这样说我的文档: -user_id: -name -address - 大量繁重的数据。
我知道我可以获取整个文档并只显示我想要的字段,但我只需要从我的文档中检索姓名和地址,这样我的用户就可以节省带宽。
我怎样才能做到这一点?
PD:这就是我检索整个文档的方式。
return StreamBuilder(
stream: Firestore.instance
.collection('users')
.document(widget.userId.toString())
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Center(
child: CircularProgressIndicator(
valueColor: AlwaysStoppedAnimation<Color>(Colors.deepOrange),
),
);
} else {
return _buildUserTile(context, snapshot.data);
}
},
);
Run Code Online (Sandbox Code Playgroud)