Flutter - как получить пунктирную границу InputDecoration в TextFormField? - PullRequest
0 голосов
/ 27 мая 2020

Ожидаемый дизайн: Изображение

Так выглядит текущий InputDecoration. Я хочу создать круговую границу пунктирной обводки с регулируемыми значениями зазора.

 InputDecoration(
            contentPadding: EdgeInsets.symmetric(vertical: 0, horizontal: 15.0),
            filled: true,
            fillColor: Colors.white,
            focusedBorder: OutlineInputBorder(
              borderSide: BorderSide(color: Kolors.accent, width: 5.0,),
              borderRadius: BorderRadius.all(Radius.circular(40)),
            ),)

1 Ответ

0 голосов
/ 27 мая 2020

Я полагал, что для TextFormField на данный момент нет пунктирной функции InputBorder. Однако я нашел решение для этого, используя этот пакет dotted_border .

Решение:

                  DottedBorder(
                      color: _isFocused ? Kolors.accent : Kolors.stroke,
                      strokeWidth: 1.5,
                      dashPattern: [7, 4],
                      borderType: BorderType.RRect,
                      radius: Radius.circular(40),
                      child: TextFormField(
                        controller: _promoController,
                        cursorColor: Kolors.textGrey,
                        style: TextStyle(
                            color: Kolors.textBlack,
                            fontSize: 14,
                            fontWeight: FontWeight.w400,
                            fontStyle: FontStyle.normal),
                        decoration: InputDecoration(
                            contentPadding:
                                EdgeInsets.symmetric(horizontal: 15),
                            border: OutlineInputBorder(
                              borderSide: BorderSide.none,
                              borderRadius: BorderRadius.circular(0),
                            ),
                            hintText: "Type your promocode",
                            hintStyle: TextStyle(
                                color: Kolors.textHint,
                                fontSize: 14)),
                      ),
                    ),
...