@@ -479,7 +479,7 @@ class ListNodeWidget extends StatelessWidget {
479479  @override 
480480  Widget  build (BuildContext  context) {
481481    // TODO(#162): p+ul and p+ol interactions 
482-     final  items =  List .generate (node.items.length, (index) {
482+     final  items =  List < TableRow > .generate (node.items.length, (index) {
483483      final  item =  node.items[index];
484484      String  marker;
485485      switch  (node) {
@@ -493,34 +493,37 @@ class ListNodeWidget extends StatelessWidget {
493493        case  UnorderedListNode ():  marker =  "•   " ; break ;
494494        case  OrderedListNode (: final  start):  marker =  "${start  + index }. " ; break ;
495495      }
496-       return  ListItemWidget ( marker:  marker, nodes:  item);
496+       return  buildListItemRow (context :  context,  marker:  marker, nodes:  item);
497497    });
498498    return  Padding (
499499      padding:  const  EdgeInsets .only (top:  2 , bottom:  5 ),
500-       child:  Column (children:  items));
500+       child:  Table (
501+         textBaseline:  localizedTextBaseline (context),
502+         defaultVerticalAlignment:  TableCellVerticalAlignment .baseline,
503+         columnWidths:  const  < int , TableColumnWidth > {
504+           0 :  IntrinsicColumnWidth (),
505+           1 :  FlexColumnWidth (),
506+         },
507+         children:  items,
508+       ),
509+     );
501510  }
502511}
503512
504- class  ListItemWidget  extends  StatelessWidget  {
505-   const  ListItemWidget ({super .key, required  this .marker, required  this .nodes});
506- 
507-   final  String  marker;
508-   final  List <BlockContentNode > nodes;
509- 
510-   @override 
511-   Widget  build (BuildContext  context) {
512-     return  Row (
513-       mainAxisAlignment:  MainAxisAlignment .start,
514-       crossAxisAlignment:  CrossAxisAlignment .baseline,
515-       textBaseline:  localizedTextBaseline (context),
516-       children:  [
517-         SizedBox (
518-           width:  20 , // TODO handle long numbers in <ol>, like https://github.com/zulip/zulip/pull/25063 
519-           child:  Align (
520-             alignment:  AlignmentDirectional .topEnd, child:  Text (marker))),
521-         Expanded (child:  BlockContentList (nodes:  nodes)),
522-       ]);
523-   }
513+ TableRow  buildListItemRow ({
514+   required  BuildContext  context,
515+   required  String  marker,
516+   required  List <BlockContentNode > nodes,
517+ }) {
518+   return  TableRow (
519+     children:  [
520+       Align (
521+         alignment:  AlignmentDirectional .topEnd,
522+         child:  Text (marker, textAlign:  TextAlign .right),
523+       ),
524+       BlockContentList (nodes:  nodes),
525+     ],
526+   );
524527}
525528
526529class  Spoiler  extends  StatefulWidget  {
0 commit comments