91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flutter怎么實現滾動選擇數字

發布時間:2022-03-23 09:05:19 來源:億速云 閱讀:609 作者:iii 欄目:開發技術

這篇“Flutter怎么實現滾動選擇數字”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“Flutter怎么實現滾動選擇數字”文章吧。

類似這樣的:

Flutter怎么實現滾動選擇數字

確定了樣式就開始寫吧。關于Dialog的選擇,我用的是SimpleDialog,有對細節上有要求的可以自己自定義一個。

showDialog(
                context: context,
                barrierDismissible: true,
                builder: (ctx){
                  return SimpleDialog(
                    title: Text('頁碼選擇'),
                    contentPadding: EdgeInsets.zero,
                    children: [
                      PageChoose(changeBookIdCallBack: (pageNum2){
                        setState(() {
                          pageNum = pageNum2;
                        });
                      }),
                      Divider(height: 1,),
                      FlatButton(
                        child: Text('取消'),
                        onPressed: () {
                          Navigator.of(context).pop();
                        },
                      ),
                      Divider(height: 1,),
                      FlatButton(
                        child: Text('確認'),
                        onPressed: () {
                          }));
                        },
                      ),
                    ],
                  );
                }
              );

我將contentPadding設置為零,看著舒服點。目前已經完成一部分了,還差中間的滾動選擇數字。

Flutter怎么實現滾動選擇數字

新建文件,創建一個StatelessWidget組件,這里不需要用到StatefulWidget,用不到setState。滾動數字我首先想到的是PageView組件,將它的scrollDirection變為Axis.vertical,就可以實現上下的滑動,這里我需要預覽當前前后兩個數字,在設置PageController的時候就需要給viewportFraction值,這里我給了0.3,具體看你給組件的寬高。

class PageChoose extends StatelessWidget {
  PageChoose({this.changeBookIdCallBack});
  final ValueChanged<int> changeBookIdCallBack;
  final PageController pagecontroller = new PageController(viewportFraction: 0.3,initialPage: 1);
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        alignment: Alignment.center,
        height: 150,
        width: 60,
        child: Stack(
          children: [
            Center(
              child: Container(
                height: 50,
                decoration: BoxDecoration(
                  border: Border(top: BorderSide(width: 0.5),bottom: BorderSide(width: 0.5))
                ),
              ),
            ),
            PageView.builder(
              itemCount: 50,
              controller: pagecontroller,
              scrollDirection: Axis.vertical,
              pageSnapping: true,
              physics: AlwaysScrollableScrollPhysics(),
              itemBuilder: (ctx ,index ){
                return Center(child: Text('$index',style: TextStyle(fontSize: 20),));
              },
              onPageChanged: (int index) {
                changeBookIdCallBack(index);
              },
            ),
          ],
        ),
      ),
    );
  }
}

以上就是關于“Flutter怎么實現滾動選擇數字”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿拉善右旗| 高安市| 马山县| 黎城县| 阿鲁科尔沁旗| 聊城市| 阳泉市| 宣化县| 凉山| 军事| 鹤山市| 漳平市| 延边| 宣威市| 庐江县| 平凉市| 重庆市| 鲁山县| 平塘县| 罗城| 六安市| 上思县| 民和| 天门市| 岗巴县| 溧水县| 饶平县| 上思县| 尉氏县| 连城县| 翁牛特旗| 西藏| 儋州市| 包头市| 龙陵县| 辰溪县| 唐河县| 宁河县| 丰都县| 龙井市| 太仓市|