Как убрать пространство вокруг карты во флаттере
На этом скриншоте есть пространство вокруг карты, и я пробовал много способов, но не могу удалить его, кто-нибудь, пожалуйста, помогите.
Вот мой код
class StepOneView extends StatefulWidget {
StepOneView({Key key}) : super(key: key);
@override
_StepOneViewState createState() => _StepOneViewState();
}
class _StepOneViewState extends State<StepOneView>{
final textControllerRate = TextEditingController(),
textControllerVolume = TextEditingController();
@override
Widget build(BuildContext context) {
//var size = MediaQuery.of(context).size.width*1;
final bloc = BlocProvider.of<StepperBloc>(context);
return BlocBuilder(
bloc: bloc,
builder: (BuildContext context, StepperState state) {
textControllerRate.text = (state.rate != null) ? state.rate.toString() : textControllerRate.text;
textControllerVolume.text = (state.volume != null) ? state.volume.toString() : textControllerVolume.text;
return Container(
child: Card(
child: Column(
children: <Widget>[
new TextFormField(
controller: textControllerRate,
decoration: const InputDecoration(labelText: 'Rate'),
keyboardType: TextInputType.number,
),
new TextFormField(
controller: textControllerVolume,
decoration: const InputDecoration(labelText: 'Volume'),
keyboardType: TextInputType.number,
),
new Padding(
padding: EdgeInsets.all(8.0),
child: RaisedButton(
onPressed: () {
bloc.onSaveRate(double.parse(textControllerRate.text), double.parse(textControllerVolume.text));
bloc.onContinue();
},
color: Colors.black,
textColor: Colors.white,
child: Text('Next'),
),
)
],
),
),
);
}
);
}
}
Вот код, который вызывает этот класс StepOneView
return Container(
child: Stepper(
controlsBuilder: (BuildContext context, {VoidCallback onStepContinue, VoidCallback onStepCancel}) {
return Padding(
padding: EdgeInsets.only(top: 8.0),
child: SizedBox()
);
},
steps: <Step>[
Step(
title: Text("Step 1"),
content: new Wrap(
children:<Widget>[
StepOneView()
],
),
isActive: (state.currentStep == 0 ? true : false),
state: (state.currentStep >= 1) ? StepState.complete : StepState.indexed,
),
Step(
title: Text("Step 2"),
content: new Wrap(
children:<Widget>[
StepTwoView()
],
),
isActive: (state.currentStep == 1 ? true : false),
state: (state.currentStep >= 2) ? StepState.complete : StepState.indexed,
),
Step(
title: Text("Step 3"),
content: new Wrap(
children:<Widget>[
StepTwoView()
],
),
isActive: (state.currentStep == 2 ? true : false),
state: (state.currentStep >= 3) ? StepState.complete : StepState.indexed,
),
],
currentStep: state.currentStep,
type: StepperType.horizontal,
onStepTapped: (step) {
(step <= state.currentStep) ? bloc.onBack() : bloc.onContinue();
},
onStepCancel: () {
bloc.onBack();
},
onStepContinue: () {
bloc.onContinue();
},
),
);
Может ли кто-нибудь сказать мне, какую ошибку я делаю, пожалуйста, я новичок в трепетании, и я не могу понять это, я перепробовал все возможные методы, которые я знал
2 ответа
Решение
Если вы посмотрите внутрь stepper.dart
файл вы можете увидеть:
margin: const EdgeInsets.symmetric(horizontal: 24.0)
Так что это Stepper
который назначает пространство слева и справа, чтобы изменить его, единственный способ, который у вас есть, - это создать свою собственную версию степпера.
Сворачивать
Card
виджет с
Container
виджет и использовать свойство поля с
margin: EdgeInsets.only(left: 10)
Или вы можете сделать это
margin: EdgeInsets.all(8.0),