Flutter 在颤振自定义按钮
我正在努力实现以下目标: 我应该使用带有图标和文本的行吗 这是我的代码及其输出 升起的按钮 标高:10, 按下:{}, 颜色:颜色,白色, 孩子:填充 填充:边缘集。全部10, 孩子:排 mainAxisAlignment:mainAxisAlignment.space, 儿童:[ 容器 身高:55, 颜色:颜色。深紫色, 子:图标 图标。设置, 颜色:颜色,白色, , , 文本 “设置”, 样式:TextStyle 尺寸:25, , , ], , , ; 输出: 任何帮助都将不胜感激。您可以使用列和行 输出 您可以使用列和行 输出 给你Flutter 在颤振自定义按钮,flutter,button,dart,Flutter,Button,Dart,我正在努力实现以下目标: 我应该使用带有图标和文本的行吗 这是我的代码及其输出 升起的按钮 标高:10, 按下:{}, 颜色:颜色,白色, 孩子:填充 填充:边缘集。全部10, 孩子:排 mainAxisAlignment:mainAxisAlignment.space, 儿童:[ 容器 身高:55, 颜色:颜色。深紫色, 子:图标 图标。设置, 颜色:颜色,白色, , , 文本 “设置”, 样式:TextStyle 尺寸:25, , , ], , , ; 输出: 任何帮助都将不胜感激。您可
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.light(), //.copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
get borderRadius => BorderRadius.circular(8.0);
@override
Widget build(BuildContext context) {
return Center(
child: Material(
elevation: 10,
borderRadius: borderRadius,
child: InkWell(
onTap: () {},
child: Container(
padding: EdgeInsets.all(0.0),
height: 60.0,//MediaQuery.of(context).size.width * .08,
width: 220.0,//MediaQuery.of(context).size.width * .3,
decoration: BoxDecoration(
borderRadius: borderRadius,
),
child: Row(
children: <Widget>[
LayoutBuilder(builder: (context, constraints) {
print(constraints);
return Container(
height: constraints.maxHeight,
width: constraints.maxHeight,
decoration: BoxDecoration(
color: Colors.deepPurple,
borderRadius: borderRadius,
),
child: Icon(
Icons.settings,
color: Colors.white,
),
);
}),
Expanded(
child: Text(
'Settings',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
),
),
),
],
),
),
),
),
);
}
}
给你
import 'package:flutter/material.dart';
final Color darkBlue = Color.fromARGB(255, 18, 32, 47);
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.light(), //.copyWith(scaffoldBackgroundColor: darkBlue),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child: MyWidget(),
),
),
);
}
}
class MyWidget extends StatelessWidget {
get borderRadius => BorderRadius.circular(8.0);
@override
Widget build(BuildContext context) {
return Center(
child: Material(
elevation: 10,
borderRadius: borderRadius,
child: InkWell(
onTap: () {},
child: Container(
padding: EdgeInsets.all(0.0),
height: 60.0,//MediaQuery.of(context).size.width * .08,
width: 220.0,//MediaQuery.of(context).size.width * .3,
decoration: BoxDecoration(
borderRadius: borderRadius,
),
child: Row(
children: <Widget>[
LayoutBuilder(builder: (context, constraints) {
print(constraints);
return Container(
height: constraints.maxHeight,
width: constraints.maxHeight,
decoration: BoxDecoration(
color: Colors.deepPurple,
borderRadius: borderRadius,
),
child: Icon(
Icons.settings,
color: Colors.white,
),
);
}),
Expanded(
child: Text(
'Settings',
textAlign: TextAlign.center,
style: TextStyle(
fontSize: 25,
),
),
),
],
),
),
),
),
);
}
}
约翰·乔的回答是正确的。下面是另一个解决方案,它对普通容器小部件执行相同的操作。我把它贴在这里,以防万一有人感兴趣
观看现场演示。约翰·乔的答案是正确的。下面是另一个解决方案,它对普通容器小部件执行相同的操作。我把它贴在这里,以防万一有人感兴趣
请参阅现场演示。图像不可见。还有其他人有同样的问题吗@utsav dave你能把图片上传到其他地方吗?请用有用的图片更新你的问题。您当前的图像已损坏。请先检查您的问题中的图像是否可见,然后再查看张贴图像。还有其他人有同样的问题吗@utsav dave你能把图片上传到其他地方吗?请用有用的图片更新你的问题。您当前的图像已损坏。请在发布之前检查您的问题中的图像是否可见
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData.dark().copyWith(scaffoldBackgroundColor: Colors.white),
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Padding(
padding: EdgeInsets.all(8.0),
child: MyWidget(),
),
],
),
),
);
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return SizedBox(
height: 48.0,
child: Container(
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(8.0),
),
boxShadow: [
BoxShadow(
color: Colors.grey,
offset: Offset(1.0, 2.0),
blurRadius: 8.0,
spreadRadius: 2.0)
]),
child: Stack(
children: <Widget>[
Row(
children: <Widget>[
Container(
width: 48.0,
height: 48.0,
alignment: Alignment.centerLeft,
decoration: BoxDecoration(
color: Colors.deepPurple,
borderRadius: BorderRadius.all(
Radius.circular(8.0),
),
),
child: Align(
alignment: Alignment.center,
child: Icon(Icons.settings))),
Expanded(
child: Center(
child: Text("Hellow world",
style: Theme.of(context)
.textTheme
.headline6
.copyWith(color: Colors.black)),
)),
],
),
SizedBox.expand(
child: Material(
type: MaterialType.transparency,
child: InkWell(onTap: () {}),
),
),
],
),
),
);
}
}