sco*_*lee 4 dart flutter flutter-listview
我想创建一个水平列表视图构建器,每页显示一个项目(同时显示下一个和上一个项目的提示),如下图所示:
我当前的代码是:
Container(
height: 240,
alignment: Alignment.center,
child: ListView.builder(
scrollDirection: Axis.horizontal,
shrinkWrap: true,
physics: PageScrollPhysics(),
itemCount: homeState.questionList.length,
itemBuilder: (context, index) =>
Container(
width: width,
child: Center(
child: Container(
width: width*0.9,
decoration: BoxDecoration(
borderRadius: BorderRadius.all(Radius.circular(17.7)),
color: Color(0xff181818),
),
child: Text(questionList[index].text)
),
),
);
),
)
Run Code Online (Sandbox Code Playgroud)
我当前的代码能够在每页显示一个项目,但它不会显示下一个项目的提示,如照片中的箭头所示。欢迎任何建议。谢谢。
您已经接近您的代码,一些调整将得到您的结果:
SizedBox(
height: 200,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: 15,
itemBuilder: (context, index) => Padding(
padding: EdgeInsets.all(6),
child: Container(
width: MediaQuery.of(context).size.width * .90,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: Colors.red,
),
child: Center(child: Text(index.toString())),
),
),
),
)
Run Code Online (Sandbox Code Playgroud)
上面的代码有这样的结果
编辑
您还可以使用PageView这样的controller var controller = PageController(viewportFraction: 0.9);
SizedBox(
height: 200,
child: PageView.builder(
controller: controller,
scrollDirection: Axis.horizontal,
itemCount: 15,
itemBuilder: (context, index) => Padding(
padding: EdgeInsets.all(6),
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(20),
color: Colors.red,
),
child: Center(child: Text(index.toString())),
),
),
),
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1614 次 |
| 最近记录: |