Вы пытались установить текстовый столбец mainAxisAlignment в spaceBetween?
mainAxisAlignment: MainAxisAlignment.spaceBetween
Таким образом, ваш код будет выглядеть следующим образом:
Expanded(
child: Container(
padding: EdgeInsets.symmetric(horizontal: 10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text(session.name.toUpperCase(), style: Theme.of(context).textTheme.headline.merge(TextStyle(color: widget.pillarCollors[program.pillar-1])),),
Text(session.description, style: Theme.of(context).textTheme.body1,),
],
),
)
),
Другое решение - разместить каждый текстовый виджет внутри отделите строку и затем поместите SizedBox между строками. Таким образом, вы можете вручную установить высоту SizedBox, чтобы она соответствовала расстоянию между строками.
Класс для получения списка всех дочерних компонентов элемента управления:
class Utility
{
private static StringBuilder sbListControls;
public static StringBuilder GetVisualTreeInfo(Visual element)
{
if (element == null)
{
throw new ArgumentNullException(String.Format("Element {0} is null !", element.ToString()));
}
sbListControls = new StringBuilder();
GetControlsList(element, 0);
return sbListControls;
}
private static void GetControlsList(Visual control, int level)
{
const int indent = 4;
int ChildNumber = VisualTreeHelper.GetChildrenCount(control);
for (int i = 0; i <= ChildNumber - 1; i++)
{
Visual v = (Visual)VisualTreeHelper.GetChild(control, i);
sbListControls.Append(new string(' ', level * indent));
sbListControls.Append(v.GetType());
sbListControls.Append(Environment.NewLine);
if (VisualTreeHelper.GetChildrenCount(v) > 0)
{
GetControlsList(v, level + 1);
}
}
}
}