是否有任何解决方法可以将 BottomNavigationBarItem 翻译成不同的语言?我使用 Lang.getString(context, key) 访问地图(从 json 文件加载)以获取正确的翻译,对这样的标签进行硬编码没有任何意义,标签:“Home”。我应该怎么办?
PageView(
controller: pageController,
onPageChanged: _pageSwipped,
children: <Widget>[Page1()],
),
bottomNavigationBar: BottomNavigationBar(
items: const <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: Icon(Icons.list),
label: Lang.getString(context, key), // it doesn't work because it should be constant.
),
],
currentIndex: _currenIndex,
selectedItemColor: Colors.blue,
iconSize: _deviceSize.size.height * 0.046,
selectedFontSize: _deviceSize.size.height * 0.023,
unselectedItemColor: Colors.grey,
onTap: _bottomTapped,
)
Run Code Online (Sandbox Code Playgroud) 假设您有一些 flutter 小部件,例如TabBar. 它被渲染在一个矩形框中。我需要将其呈现为弧形,以便文本和下划线遵循圆的一部分(或者更好的是贝塞尔曲线)。
如何才能做到这一点?
这说明了我想要实现的目标 - 弯曲的TabBar小部件:

请注意,在这种情况下,TabBar弯曲遵循圆弧(圆的边缘)。这就是我立即需要的。然而,在未来,我可能需要沿着日食边缘进行弯曲,因此允许它的解决方案会更好。
此外,适用于不同小部件的解决方案是首选。
重要提示:我不想剪辑小部件的弯曲形状。小部件的整个区域应该保持可见。相反,我需要弯曲小部件的内容(=弯曲其渲染图像)。
对粗体字体表示歉意,但如果没有它,人们会不断发布有关如何剪辑小部件的答案,相比之下,这很微不足道,对我的问题毫无用处。
来自权威机构(例如在 Flutter 标签中的高声誉或 Flutter 团队成员中的高声誉)的回答“Flutter 目前不支持此功能”也将被接受。
有什么方法可以防止我的屏幕接收触摸事件,我不想为我的应用程序中的每个小部件禁用触摸。我只想锁定应用程序,使其不接收触摸事件。我怎样才能做到这一点?
如何防止 aRaisedButton扩展以填充Expanded包含它的 ?我想创建三列宽度与可用空间成正比的列,但我希望每列中的子项是其自然大小,而不消耗其父项的整个宽度Expanded。
Widget _controls(BuildContext cx) {
return Row(
children: [
Expanded(
flex: 1,
child: player.isOnFirstItem
? Container()
: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () => control.gotoPreviousItem(),
),
),
Expanded(
flex: 4,
child: player.isComplete()
? Text(player.currentItem.status) // I'll be adding more here
: RaisedButton(
child: Text(player.currentItem.actionText),
onPressed: () => player.currentItem.action(),
),
),
Expanded(
flex: 1,
child: player.isOnLastItem
? Container()
: IconButton(
icon: Icon(Icons.arrow_forward),
onPressed: () => player.gotoNextItem(),
),
),
],
);
Run Code Online (Sandbox Code Playgroud)
该RaisedButton还填充内的柔性空间时,我还窝它Container …
有没有办法在 aWidget上的给定位置绘制a Canvas?
更具体地说,我想在实际小部件的前面单独绘制Marker与 a 相关的's的子小部件。这是创建一个可以做到这一点的尝试,但我无法弄清楚如何在画布上实际绘制小部件。使用requires a ,我不知道如何创建/检索:FlutterMapCanvasFlutterMapCustomPainterRenderObjectPaintingContext
class MarkerPainter extends CustomPainter {
MapController mc;
BuildContext context;
List<Marker> markers;
MarkerPainter(this.context, this.mc, this.markers);
@override
void paint(Canvas canvas, Size size) {
if( markers != null && markers.isNotEmpty ){
for(int i=0; i<markers.length; i++){
Marker marker = markers[i];
Offset o = myCalculateOffsetFromLatLng(marker.point, mc, context);
// Won't work, this needs a PaintingContext...
marker.builder(context).createElement().renderObject.paint(context, o);
}
}
}
@override
bool shouldRepaint(MarkerPainter oldDelegate) => oldDelegate.markers != …Run Code Online (Sandbox Code Playgroud) flutter flutter-layout flutter-widget flutter-canvas fluttermap
我想用来MediaQuery根据屏幕高度和宽度构建小部件。#26004中也提到了这个问题,即我只想查询一次大小数据,例如在initState. MediaQuery文档状态
使用 MediaQuery.of 查询当前媒体将导致您的小部件在 MediaQueryData 更改时自动重建(例如,如果用户旋转其设备)。
,但这会导致我的应用程序进行不必要的重建。具体来说,如果插入或填充发生更改(例如显示键盘时),它会导致小部件重建。
有没有一种替代方案MediaQuery可以在更改时不会导致重建MediaQueryData?
我想知道我们是否可以检查 flutter 中的两个小部件是否重叠。我实际上有两个使用 Stack 堆叠的 AnimatedContainer。我想检查两个孩子是否重叠。我实际上正在从头开始创建一个游戏并想检查碰撞。虽然 x 和 y 是一个选项,但它取决于两个对象的高度和宽度,并且由于它们不同,因此结果非常不准确。
任何帮助,将不胜感激。
dart mobile-development flutter flutter-animation flutter-widget
我很害怕。这是一个错误吗?如果您运行它并转到主屏幕,此消息将不断出现。\n返回应用程序也是如此。
\n下面是我的代码的一部分。
\n此页面支持 YouTube 视频和相机功能。
\nList<CameraDescription> cameras = List.empty(growable: true); \n\nclass Home extends StatefulWidget {\n @override\n const Home({Key? key}) : super(key: key);\n _Home createState() => _Home();\n}\n\nclass _Home extends State<Home>{\n CameraController controller =\n CameraController(cameras[1], ResolutionPreset.max);\n //final VideoHomeController controller= Get.put(VideoHomeController());\n late final YoutubePlayerController _controller;\n\n @override\n void initState() {\n super.initState();\n controller.initialize().then((_) {\n if (!mounted) {\n return;\n }\n setState(() {});\n });\n _controller = YoutubePlayerController(\n initialVideoId: '',\n flags: YoutubePlayerFlags(\n autoPlay: false,\n loop: false,\n hideThumbnail: false,\n //isLive: true,\n\n controlsVisibleAtStart: false,\n\n useHybridComposition: false,\n ),\n …Run Code Online (Sandbox Code Playgroud) 我是颤振的新手。我正在使用相机插件将相机添加到我的应用程序中。我收到此警告使用函数声明将函数绑定到名称。我该如何解决这个问题?
代码 -
Widget _cameraTogglesRowWidget() {
final List<Widget> toggles = <Widget>[];
final onChanged = (CameraDescription? description) {
if (description == null) {
return;
}
onNewCameraSelected(description);
};
Run Code Online (Sandbox Code Playgroud) flutter flutter-plugin flutter-widget flutter-ios flutter-android
我已经在我的颤振项目中实现了signature_pad并且它工作正常。
不幸的是,当我把它放在里面时SingleChildScrollView,签名没有画出来。它滚动而不是签名。
似乎是,GestureDetector但我不知道如何解决它。
有人可以给我一些线索吗?
谢谢。
flutter ×10
flutter-widget ×10
dart ×4
flutter-ios ×1
flutter-web ×1
fluttermap ×1
signature ×1
touch ×1