Flutter_14_singleChildScrollView

  • SingleChildCScrollView(类似Android中的ScrollView)
    • child(子组件)
    • padding(内边距)
    • scrollDirection(滚动方向:Axis.horizontal | Axis.vertical)
    • reverse(初始滚动位置,false 头部、ture尾部)
    • physics
      • clampingScollPhysics:Android下微光效果
      • BouncingScrollPhysics:IOS下弹性效果
import 'package:flutter/material.dart';

void main() {
  //下一个组件
  runApp(MyApp());
}

//MaterialApp
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "Flutter",
      //下一个组件
      home: Home(),
      debugShowCheckedModeBanner: false,
    );
  }
}

//Scaffold
class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("SingleChildScrollView"),
        leading: Icon(Icons.menu),
        actions: [Icon(Icons.settings)],
        elevation: 0.0,
        centerTitle: true,
      ),
      //下一个组件
      body: SingleChildScrollViewDemo(),
    );
  }
}

//Container
class SingleChildScrollViewDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Stack(
      children: [
        SingleChildScrollView(
          // 滚动方向
          scrollDirection: Axis.horizontal,
          padding: EdgeInsets.all(10),
          reverse: true,
          child: Row(
            children: [
              OutlinedButton(
                onPressed: () {},
                child: Text("按钮1"),
              ),
              OutlinedButton(
                onPressed: () {},
                child: Text("按钮2"),
              ),
              OutlinedButton(
                onPressed: () {},
                child: Text("按钮3"),
              ),
              OutlinedButton(
                onPressed: () {},
                child: Text("按钮4"),
              ),
              OutlinedButton(
                onPressed: () {},
                child: Text("按钮5"),
              ),
              OutlinedButton(
                onPressed: () {},
                child: Text("按钮6"),
              ),
              OutlinedButton(
                onPressed: () {},
                child: Text("按钮7"),
              ),
            ],
          ),
        ),
        // 垂直方向的滚动
        SingleChildScrollView(
          // 滚动方向
          scrollDirection: Axis.vertical,
          padding: EdgeInsets.all(10),
          reverse: true,
          physics: BouncingScrollPhysics(),
          child: Column(
            children: List.generate(
              100,
              (index) => OutlinedButton(
                onPressed: () {},
                child: Text("按钮$index"),
              ),
            ),
          ),
        ),
      ],
    );
  }
}
`flutter_datetime_picker`库默认是以日期和时间的形式显示的,包括年、月、日、小时、分钟和秒。如果你想在 picker 中同时显示全部信息,可以在初始化 `DateTimePicker` 对象时设置相应的模式(mode)。例如,如果你想要显示日期和时间,可以使用 `DateTimePickerMode.datetime`。 以下是完整的代码示例: ```dart import 'package:flutter/material.dart'; import 'package:flutter_datetime_picker/flutter_datetime_picker.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: RaisedButton( onPressed: () { showDateTimePicker(context).then((date) { if (date != null) { print("Selected date and time: $date"); } else { print("User canceled the picker"); } }); }, child: Text('选择日期和时间'), ), ), ), ); } Future<DateTime?> showDateTimePicker(BuildContext context) async { return await showDialog( context: context, builder: (context) { return AlertDialog( title: Text('选择日期和时间'), content: SingleChildScrollView( child: Padding( padding: EdgeInsets.all(16.0), child: DateTimePicker( mode: DateTimePickerMode.datetime, is24Hour: true, initialDate: DateTime.now(), ), ), ), actions: [ FlatButton( onPressed: () { Navigator.of(context).pop(); }, child: Text('取消'), ), FlatButton( onPressed: () { Navigator.of(context).pop(date); }, child: Text('确认'), ), ], ); }, ); } } ``` 在这个示例中,当用户点击 "选择日期和时间" 按钮时,会弹出一个包含年、月、日、小时、分钟和秒的 picker。如果用户选择了一个值,它会被打印出来;如果用户取消了选择,将返回 `null`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值