Home > OS >  How to apply properties to imported library on flutter project
How to apply properties to imported library on flutter project

Time:06-09

I am new on flutter and i am trying to add some properties to a library i just imported from pub.dev.

The library is "flutter_input_field.dart' from this repo: https://github.com/SatishKumarRaizada/fancy_textfield/blob/master/lib/src/flutter_form_field.dart

Everything work fine until when i add the InputDecoration "(focusedBorder: OutlineInputBorder( borderSide: BorderSide( color: borderColor)" property and i get an error: "The argument type 'InputDecoration' can't be assigned to the parameter type 'Color' "

this is the code

FlutterInputField(
              borderColor: InputDecoration(focusedBorder: OutlineInputBorder(
                borderSide: BorderSide(
                    color: borderColor),
              )),
              hintText: 'Enter 1st Flour Quantity',
              labelText: 'Flour Quantity',
              textFieldController: _textEditingController,
              filledColor: Colors.grey.shade200,
              onChange: (String st) {},
              prefixWidget: const Icon(Icons.fastfood),
              onDone: () {
              },
            ),

CodePudding user response:

import 'package:flutter/material.dart';

class FlutterInputField extends StatelessWidget {
  final String hintText;
  final String labelText;
  final Function onChange;
  final Function onDone;
  final Widget? prefixWidget;
  final Widget? suffixWidget;
  final Color borderColor;
  final Color focusColor;
  final Color cursorColor;
  final TextEditingController? textFieldController;
  final Function? suffixTap;
  final Function? validateTextField;
  final Color? filledColor;
  final bool isSecure;
  final int lineHeight;
  final double labelFontSize;
  final double hintFontSize;

  const FlutterInputField(
      {Key? key,
      required this.hintText,
      required this.labelText,
      required this.onChange,
      required this.onDone,
      this.prefixWidget,
      this.suffixWidget,
      this.borderColor = Colors.blue,
      this.textFieldController,
      this.suffixTap,
      this.validateTextField,
      this.filledColor = Colors.lightBlue,
      this.isSecure = false,
      this.lineHeight = 1,
      this.labelFontSize = 16,
      this.hintFontSize = 16,
      this.focusColor = Colors.blue,
      this.cursorColor = Colors.blue})
      : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.start,
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        Text(labelText),
        const SizedBox(height: 10),
        TextFormField(
          cursorColor: cursorColor,
          controller: textFieldController,
          obscureText: isSecure,
          maxLines: lineHeight,
          decoration: InputDecoration(
            focusColor: Colors.blue,
            contentPadding: const EdgeInsets.symmetric(
              horizontal: 10,
              vertical: 15,
            ),
            errorStyle: const TextStyle(
              fontSize: 16,
            ),
            filled: true,
            fillColor: filledColor,
            hintText: hintText,
            prefixIcon: prefixWidget,
            suffixIcon: suffixWidget,
            labelStyle: TextStyle(
              fontSize: labelFontSize,
            ),
            hintStyle: TextStyle(
              fontSize: hintFontSize,
            ),
            border: OutlineInputBorder(
              borderRadius: BorderRadius.circular(8.0),
              borderSide: const BorderSide(
                width: 0,
                style: BorderStyle.none,
              ),
            ),
            focusedBorder: OutlineInputBorder(
              borderRadius: BorderRadius.circular(8.0),
              borderSide: BorderSide(
                width: 0.5,
                style: BorderStyle.solid,
                color: focusColor,
              ),
            ),
          ),
          onChanged: (String str) {
            onChange(str);
          },
          validator: (String? value) {
            return validateTextField!(value);
          },
          onEditingComplete: () {
            onDone();
          },
        ),
      ],
    );
  }
}


  

add this textfield to your project and call it

FlutterInputField( borderColor: Colors.white, focusColor: Colors.green, hintText: 'Enter 1st Flour Quantity', labelText: 'Flour Quantity', textFieldController: TextEditingController(), filledColor: Colors.grey.shade200, onChange: (String st) {}, prefixWidget: const Icon( Icons.fastfood, color: Colors.green, ), cursorColor: Colors.green, onDone: () {}, ),

I just simply added defined a variable focus color and called it in constructor and assigned color from where i want to call it, Note you dont need to do this if you want borderColor and focusColor same. for this you can simply give

borderColor:Colors.black

  • Related