Commit fbf33fa
Changed files (1)
lib
components
lib/components/settings_widgets.dart
@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
+import 'package:flutter/services.dart';
import 'package:flutter_material_color_picker/flutter_material_color_picker.dart';
class SettingsTile extends StatelessWidget {
@@ -30,7 +31,6 @@ class SettingsTile extends StatelessWidget {
lead,
const SizedBox(width: 15,),
SizedBox(
- width: MediaQuery.of(context).size.width - 150,
child: (() {
if (description != null) {
return Column(
@@ -239,6 +239,53 @@ class _SliderSettingsTileState extends State<SliderSettingsTile> {
}
}
+class InputSettingsTile extends StatelessWidget {
+ final Widget title;
+ final Widget? leading;
+ final Widget? description;
+ final bool disabled;
+
+ final double inputWidth;
+ final String? initialValue;
+ final InputDecoration? decoration;
+ final String? Function(String?)? validator;
+ final TextInputType? keyboardType;
+ final List<TextInputFormatter>? inputFormatters;
+
+ const InputSettingsTile({super.key, required this.title, required this.inputWidth, this.leading, this.description, this.disabled = false, this.initialValue, this.decoration, this.validator, this.keyboardType, this.inputFormatters});
+
+ @override
+ Widget build(BuildContext context) {
+ final focusNode = FocusNode();
+
+ return SettingsTile(
+ title: title,
+ description: description,
+ onPressed: (context) {
+ focusNode.requestFocus();
+ },
+ trailing: Row(
+ children: [
+ SizedBox(
+ width: inputWidth,
+ child: TextFormField(
+ initialValue: initialValue,
+ decoration: decoration,
+ validator: validator,
+ keyboardType: keyboardType,
+ inputFormatters: inputFormatters,
+ focusNode: focusNode,
+ ),
+ ),
+ const SizedBox(width: 20,),
+ ],
+ ),
+ leading: leading,
+ disabled: disabled,
+ );
+ }
+}
+
class SettingsSection extends StatelessWidget {
final Widget title;
final List<Widget> children;