Метод resolve
Метод resolve класса BorderRadius
получает направление письма и возвращает скругление с левым и правым краем.
У обычного скругления края уже левые и правые, поэтому результат совпадает с исходным.
У скругления с началом строки этот угол встаёт слева при письме слева направо и справа при обратном направлении.
Синтаксис
BorderRadiusDirectional.only(topStart: Radius.circular(32)).resolve(TextDirection.ltr)
Параметры
| Параметр | Описание |
|---|---|
direction |
Направление письма. От него зависит, куда встанет начало строки. |
Пример
Давайте поставим начало строки слева:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Container(
width: 160,
height: 72,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFF1565C0),
borderRadius: BorderRadiusDirectional.only(
topStart: Radius.circular(32),
).resolve(TextDirection.ltr),
),
child: Text('abcde', style: TextStyle(color: Color(0xFFFFFFFF))),
)
),
),
),
);
}
На экране синяя карточка со строкой abcde. Скруглён левый верхний угол: при письме слева направо начало строки слева.
Пример
Давайте поставим начало строки справа:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Container(
width: 160,
height: 72,
alignment: Alignment.center,
decoration: BoxDecoration(
color: Color(0xFF6A1B9A),
borderRadius: BorderRadiusDirectional.only(
topStart: Radius.circular(32),
).resolve(TextDirection.rtl),
),
child: Text('12345', style: TextStyle(color: Color(0xFFFFFFFF))),
)
),
),
),
);
}
На экране фиолетовая карточка со строкой 12345. Скруглён правый верхний угол: начало строки перешло направо.
Смотрите также
-
метод
all,
который ставит один радиус на все четыре угла -
метод
only,
который скругляет только названные углы -
метод
horizontal,
который задаёт радиус отдельно левым и правым углам -
класс
BoxDecoration,
который рисует скругление в поле borderRadius