android - 带有滚动元素的固定标题

标签 android flutter scrollview

我是 Flutter 的新手,我正在尝试制作一个简单的屏幕,其中包含 FIXED TITLE 和下方可滚动的“child or Column”,其中包含屏幕截图中的一些元素。 最初会有两个元素,我希望它们位于屏幕中央, 但是当添加第三个元素时,scrollview 需要在较小的屏幕上启动 ,因此标题保持固定但元素可滚动。 这是滚动所有内容(包括标题)的当前代码。 提前致谢:

  @override
  Widget build(BuildContext context) {
    return Container(

      color: Color.fromRGBO(246, 246, 246, 1.0),
      child: SafeArea(
          child: Material(


            child: Center(
              child: SingleChildScrollView(
                child: Column(

                  mainAxisSize: MainAxisSize.max,
                  children: <Widget>[
                    Center(
                      child: Padding(
                        padding: EdgeInsets.only(top: 20.0,bottom: 20.0),

                        child: Text(
                          'Lorem Ipsum',
                          textAlign: TextAlign.center,
                          style: TextStyle(
                              color: Color.fromRGBO(78, 53, 43, 1.0),
                              fontSize: 40.0,                            
                              fontWeight: FontWeight.w300),
                        ),
                      ),
                    ),

                    _item(context, 'ITEM_1', 'Title1', 'ico_01.png'),
                    _item(context, 'ITEM_2', 'Title2', 'ico_02.png'),
                    _thirdItem
                        ? _item(
                        context, 'ITEM_3', 'Title3', 'ico_03.png')
                        : Container(),

                  ],
                ),
              ),
            ),
          )),

    );
  }

最佳答案

这个例子应该演示如何有一个固定的标题。请注意,Column 的 mainAxisSize 设置为 MainAxisSize.max 并且 SingleChildScrollView 被包裹在 Flexible 中,这导致 SingleChildScrollView 占用剩余空间并启用滚动。

class FixedTitleScrollView extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisSize: MainAxisSize.max,
      children: <Widget>[
        Align(
          alignment: Alignment.center,
          child: Text(
            'Fixed Title',
            style: TextStyle(
                color: Color.fromRGBO(78, 53, 43, 1.0),
                fontSize: 40.0,
                fontWeight: FontWeight.w300),
          ),
        ),
        Flexible(
          child: SingleChildScrollView(
            child: Column(
              children: <Widget>[
                _item(),
                _item(),
                _item(),
                _item(),
                _item(),
                _item(),
                _item(),
                _item(),
                _item(),
              ],
            ),
          ),
        ),
      ],
    );
  }

  Widget _item() {
    Color color = Color(Random().nextInt(0xffffffff));
    return Container(
      color: color,
      height: 300,
      width: 300,
      child: Align(
        alignment: Alignment.center,
        child: Text(color.toString()),
      ),
    );
  }
}

尝试根据您的需要修改它。希望对您有所帮助:-)

关于android - 带有滚动元素的固定标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55807498/

相关文章:

android - ActionBar 覆盖我的 Activity

android - 如何在运行时更改 MAIN Activity

firebase - 无法检查 DocumentSnapshot 上的 containsKey

android - 点击App图标识别Flutter App已经打开

javascript - 当 WebView 位于 ScrollView 内时,ScrollTo() 方法不起作用

android - 尝试获取已安装的应用程序列表时出现 TransactionTooLargeException

flutter - 如何修复在Dart中返回 'null'的 setter/getter ?

android - scrollView 中的 fillViewPort 到底是做什么的?

android - ScrollView 警告

Android 处理 ListView 中的许多 EditText 字段