简体   繁体   English

将 RTL 添加到 ListView.builder 水平颤动

[英]Add RTL to ListView.builder horizontal flutter

I am trying to make ListView.builder horizontal scrolling from right to left我正在尝试使ListView.builder从右到左水平滚动

My code:我的代码:

SliverToBoxAdapter(
  child: Container(
    height: MediaQuery.of(context).size.height / 4.5,
    margin: const EdgeInsets.only(bottom: 5.0, top: 10.0),
    child: ListView.builder(
      scrollDirection: Axis.horizontal,
      itemCount: list.length,
      itemBuilder: (BuildContext context, int index) {
        return InkWell(/* ... */)
      }
    ),
  ),
);

You just need to add reverse parameter to the ListView您只需要将反向参数添加到 ListView

here is an example:这是一个例子:

ListView.builder(
    reverse: true,
    scrollDirection: Axis.horizontal,
    itemCount: list.length,
    itemBuilder: (context, position) {
      return Padding(
        padding: const EdgeInsets.all(8.0),
        child: Container(
          child: Text(list[position]),
          color: Colors.grey,
          height: 10,
          width: 10,
        ),
      );
    },
  )

best way to make it is to wrap your ListView with Directionality widget with TextDirection.rtl like following code最好的方法是使用TextDirection.rtl将 ListView 与Directionality小部件包装起来,如下面的代码

Directionality(
   textDirection: TextDirection.rtl,
   child: ListView.builder(
      scrollDirection: Axis.horizontal,
      itemCount: list.length,
      itemBuilder: (BuildContext context, int index) {
         return InkWell(/* ... */)
      }
   ),
);

for horizontal用于卧式

ListView.builder(
    reverse: true,
    scrollDirection: Axis.horizontal,

for vertical垂直

ListView.builder(
    reverse: true,
    scrollDirection: Axis.vertical,

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM