如何从右向左滚动singlechildscrollview水平轴

时间:2021-05-23 16:45:37

标签: flutter flutter-layout

我有需要水平滚动的内容,我从 scrollDirection: Axis.horizo​​ntal 使用,但我的问题是我想从右侧开始滚动,我的意思是使用水平轴的 SingleChildScrollView 从左到右滚动子级,但我希望 SingleChildScrollView 从从右到左,我用 Align 包裹 singleChildScrollView 并将对齐设置为右,但我不起作用。这是我的代码:

SingleChildScrollView(
                    scrollDirection: Axis.vertical,
                    child: SingleChildScrollView(
                      scrollDirection: Axis.horizontal,
                      child: Padding(
                        padding: EdgeInsets.only(
                            top: 2 * SizeConfig.heightMultiplier),
                        child: DataTable(
                            showBottomBorder: false,
                            headingTextStyle: TextStyle(
                              fontWeight: FontWeight.bold,
                              fontSize: 2.5 * SizeConfig.heightMultiplier,
                              color: Colors.black,
                            ),
                            dataTextStyle: TextStyle(
                                fontSize: 2.5 * SizeConfig.heightMultiplier,
                                color: Colors.black),
                            columns: <DataColumn>[
                              DataColumn(
                                label: Text(
                                  'حساب',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                              DataColumn(
                                label: Text(
                                  'تفصیل',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                              DataColumn(
                                label: Text(
                                  'بردگی',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                              DataColumn(
                                label: Text(
                                  'آوردگی',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                              DataColumn(
                                label: Text(
                                  'تاریخ',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                            ],
                            rows:<DataRow> [ DataRow(
                                    cells: <DataCell>[
                                      DataCell(
                                       Text('ملیجه ارش',textDirection: 
                                        TextDirection.rtl,
                                          )
                                      ),
                                      DataCell(
                                        Text('ملیجه ارش',
                                    textDirection: TextDirection.rtl,)
                                      ),
                                      DataCell(Text(
                                       Text('ملیجه ارش',
                                        textDirection: TextDirection.rtl,
                                      )),
                                      DataCell(Text(
                                      Text('ملیجه ارش',
                                        textDirection: TextDirection.rtl,
                                      )),

                                      DataCell(Text(
                                       Text('ملیجه ارش',
                                        textDirection: TextDirection.rtl,
                                     
                                   )
                      ),
                    ),
                  );
      },

3 个答案:

答案 0 :(得分:1)

只需设置reverse:true
代码看起来像

SingleChildScrollView(
                    scrollDirection: Axis.vertical,
                    reverse:true,
                    child: SingleChildScrollView(
                      scrollDirection: Axis.horizontal,
                      child: Padding(
                        padding: EdgeInsets.only(
                            top: 2 * SizeConfig.heightMultiplier),
                        child: DataTable(
                            showBottomBorder: false,
                            headingTextStyle: TextStyle(
                              fontWeight: FontWeight.bold,
                              fontSize: 2.5 * SizeConfig.heightMultiplier,
                              color: Colors.black,
                            ),
                            dataTextStyle: TextStyle(
                                fontSize: 2.5 * SizeConfig.heightMultiplier,
                                color: Colors.black),
                            columns: <DataColumn>[
                              DataColumn(
                                label: Text(
                                  'حساب',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                              DataColumn(
                                label: Text(
                                  'تفصیل',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                              DataColumn(
                                label: Text(
                                  'بردگی',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                              DataColumn(
                                label: Text(
                                  'آوردگی',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                              DataColumn(
                                label: Text(
                                  'تاریخ',
                                  textDirection: TextDirection.rtl,
                                ),
                              ),
                            ],
                            rows: state.roznamcha
                                .map(
                                  (data) => DataRow(
                                    cells: <DataCell>[
                                      DataCell(
                                        GetAccount(
                                          id: data.accountNum,
                                        ),
                                      ),
                                      DataCell(
                                        Text(
                                          data.description,
                                          textDirection: TextDirection.rtl,
                                        ),
                                      ),
                                      DataCell(Text(
                                        data.debit.toString(),
                                        textDirection: TextDirection.rtl,
                                      )),
                                      DataCell(Text(
                                        data.credit.toString(),
                                        textDirection: TextDirection.rtl,
                                      )),

                                      DataCell(Text(
                                        data.issueDate.toString(),
                                        textDirection: TextDirection.rtl,
                                      )),
                                      //     DataCell(
                                      //         //Text('ii')
                                      //         InkWell(
                                      //             onTap: () async {
                                      //               CustomAlertDialog
                                      //                   .showAlertDialog(
                                      //                       context: context,
                                      //                       deleteFunction:
                                      //                           () async {
                                      //                         await BlocProvider.of<
                                      //                                     RoznamchaCubit>(
                                      //                                 context)
                                      //                             .deleteRoznamcha(data
                                      //                                 .transactionNumber)
                                      //                             .whenComplete(() {
                                      //                           ScaffoldMessenger
                                      //                                   .of(context)
                                      //                               .showSnackBar(
                                      //                                   SnackBar(
                                      //                                       content:
                                      //                                           Text(
                                      //                             'حذف شد به اجازه ات',
                                      //                             textDirection:
                                      //                                 TextDirection
                                      //                                     .rtl,
                                      //                           )));
                                      //                           Navigator.pop(
                                      //                               context);
                                      //                         });
                                      //                       });
                                      //             },
                                      //             child: Text('حذف'))),
                                    ],
                                  ),
                                )
                                .toList()),
                      ),
                    ),
                  );
      },

答案 1 :(得分:0)

在您的文本小部件中使用 textDirection: TextDirection.rtl

答案 2 :(得分:0)

试试这个

SingleChildScrollView(
 scrollDirection: Axis.horizontal,
 // add this line
 dragStartBehavior: DragStartBehavior.down,
 ...
)