本來想要做個這樣的,

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供中衛(wèi)網(wǎng)站建設(shè)、中衛(wèi)做網(wǎng)站、中衛(wèi)網(wǎng)站設(shè)計、中衛(wèi)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、中衛(wèi)企業(yè)網(wǎng)站模板建站服務(wù),十余年中衛(wèi)做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
結(jié)果處理PageView的時候就如上圖了,以前用Swift開發(fā)這樣的Page控件的時候用的UIScrollView,有滾動寬度或者高度的設(shè)置,所以看到width的時候我是比較興奮地去查找相關(guān)的width屬性,當(dāng)然結(jié)果就是沒有,單獨把PageView部件抽出是沒有問題的,但是會是最大高度,好了,問題找到了,高度沒有限制好導(dǎo)致PageView無法限制自身的高度,我是在SafeArea中添加的列部件,列中添加行部件,原來是PageView作為列部件的children之一,現(xiàn)在要限制列部件除上面的兩行外設(shè)置PageView高度最大化,我把PageView放在Expanded中,Expanded作為列部件的children之一,好了問題解決了
Column(
children:[
Widget1,
Widget2,
AspectRatio(aspectRatio: ../..,child:PageView(....))
])
如整個場景全部是分頁,則去除Column,改為PageView(),全部重新構(gòu)建場景,Expanded需要在確定的部件需要足夠多的高度或者寬度時使用,
PDF(Portable Document Format)是Adobe公司發(fā)明的一種文檔格式,由于其具有很多獨特的優(yōu)點而被廣泛使用。如pdf可內(nèi)嵌字體,這樣就可以避免客戶端沒有安裝字體而顯示不一致;如pdf的圖片和文字使用了矢量圖,這樣就可以隨意放大而不會失真;另外pdf的加密和防篡改也是一大亮點,是向外發(fā)布資料的首選格式
一個未經(jīng)修改的PDF文件從頭到尾主要包括4個部分,分別是:文件頭、對象集合、交叉引用表、文件尾。其中:
%PDF-1.4
1 0 obj
/Producer (Skia/PDF m92)
endobj
xref
0 83
0000000000 65535 f
0000000015 00000 n
0000010954 00000 n
trailer
/Size 83
/Root 11 0 R
/Info 1 0 R
startxref
50152
%%EOF
iOS可以通過UIGraphicsPDFRenderer類生成PDF,其本身的api非常簡單:一個init方法,一個寫入文件的方法,一個導(dǎo)出data數(shù)據(jù)的方法
用于構(gòu)造UIGraphicsPDFRenderer,第一個參數(shù)是pdf的尺寸,第二個參數(shù)可以設(shè)置pdf文件的元數(shù)據(jù)
生成pdf并寫入到指定URL
生成pdf并返回Data
繪制PDF主要依靠 UIGraphicsPDFRendererContext ,這是UIGraphicsRendererContext的子類,所以iOS是使用CoreGraphics的draw api進(jìn)行pdf繪制的
除了CoreGraphics的相關(guān)api之外,最重要的是 func beginPage() ,用于創(chuàng)建一頁pdf
安卓可以使用 PdfDocument 類生成PDF,和iOS類似,采用了系統(tǒng)的繪圖api( Canvas ),對于開發(fā)者來說學(xué)習(xí)成本很低。但是安卓的坑比較多,建議采用iText、PDFBox等第三方實現(xiàn)。如drawText不支持多行文本,要通過較復(fù)雜的操作來實現(xiàn);某些系統(tǒng)對文檔內(nèi)的圖片不進(jìn)行壓縮,導(dǎo)致生成的pdf比正常的大10多倍
flutter可以使用 pdf庫 生成pdf,該庫實現(xiàn)了一套自己的widgets,開發(fā)者可以像寫普通widgets一樣去寫pdf;另外還提供了table相關(guān)的api,不用手動畫表格,還支持自動分頁,非常友好。
白話:基于Sliver模型是高性能的,只有出現(xiàn)在可視范圍內(nèi)的組件才夠構(gòu)建,界面外的組件不構(gòu)建。
官話:Flutter中提出一個Sliver(中文為“薄片”的意思)概念,如果一個可滾動組件支持Sliver模型,那么該滾動可以將子組件分成好多個“薄片”(Sliver),只有當(dāng)Sliver出現(xiàn)在視口中時才會去構(gòu)建它,這種模型也稱為“基于Sliver的延遲構(gòu)建模型”。
可滾動組件中有很多都支持基于Sliver的延遲構(gòu)建模型,如ListView、GridView,CustomScrollView但是也有不支持該模型的,如SingleChildScrollView(性能很低,所有UI都會完整的繪制)。
CustomScrollView是可以使用Sliver來自定義滾動模型(效果)的組件。它可以包含多種滾動模型。CustomScrollView可以實現(xiàn)把多個彼此獨立的可滑動widget組合起來,并且是高性能的。
CustomScrollView可以控制SliverListView根據(jù)需要才構(gòu)建item,類似與分頁加載,復(fù)用加載,數(shù)據(jù)量比較大的時候?qū)μ岣呒虞d效率非常有幫助。
CustomScrollView:高性能,懶加載,只構(gòu)建屏幕可視范圍內(nèi)組件,超出屏幕外的組件等滑動的時候再構(gòu)建,適用于子widget數(shù)據(jù)量較大的場景。
SingleChildScrollView:低性能,完整加載,直接把整個child完整的構(gòu)建出來,只適用于子widget數(shù)量有限的場景。
我們用CustomScrollView把“導(dǎo)航欄”和“瀑布流”組合在一起,并且依然保持很好的滾動性能。
CustomScrollView下使用的listview也必須是基于sliver模型的,如SliverMasonryGrid,SliverListView,SliverGridView,這樣CustomScrollView可以計算listview中需要構(gòu)建的items。非Sliver組件需要用SliverToBoxAdapter包起來。
瀑布流Demo如下:
實踐效果:
1. div和table
這個是最簡單的,也是最基礎(chǔ)的。要熟練掌握div、form table、ul li 、p、span、font這些標(biāo)簽,這些都是最常用的,特別是div和table,div用于布局、table也可以用于布局,但是不靈活,基本 table是用來和數(shù)據(jù)打交道。
2.html
HTML是指超文本標(biāo)簽語言,是目前web領(lǐng)域應(yīng)用廣泛的語言,我們只需要在html文檔中插入對應(yīng)的標(biāo)簽,即可實現(xiàn)web頁面的編寫與排列,所以要熟練掌握HTML基本知識,包括每個標(biāo)簽的用法等。
3. CSS
CSS指層疊樣式表,可以為HTML標(biāo)簽自定義樣式,通過設(shè)置HTML標(biāo)簽的樣式,來改變其外形,達(dá)到美化與排版web頁面的目的。
4.Javascript
Javascript是網(wǎng)頁腳本語言,它可以在html中運行,設(shè)置并修改瀏覽器中的各種對象與變量。例如用來改進(jìn)設(shè)計、驗證表單、檢測瀏覽器、創(chuàng)建 cookies等等,現(xiàn)在各大網(wǎng)站都可以看見 Javascript的蹤影,常見的網(wǎng)站首頁大眼晴、警告提示框、頁面動畫效果等等。Javascript更是一種在客戶端廣泛使用的腳步語言,在 Javascript當(dāng)中提供了一些內(nèi)置函數(shù)、對象和DOM操作,借助這些內(nèi)容我們可以來實現(xiàn)一些客戶端的特效、驗證、交互等!
5.Jquery
Jquery是相當(dāng)于把js封裝了一套的一個js插件,目的就是操作起來更方便,代碼寫的更少。 Jquery是一個免費、開源的輕量級的Javascript庫,并且兼容各種瀏覽器,同時現(xiàn)在有很多基于 Jquery的插件可供選擇,這樣在我們實現(xiàn)一些豐富的動態(tài)效果時更方便快捷,大大節(jié)省了我們開發(fā)的時間,提高了開發(fā)速度。
6.框架
從 bootstrap開始,響應(yīng)式的珊格系統(tǒng)被后來框架一直沿用,建議學(xué)一套主流mvc框架,vue,react, angular兩選一種。
7.會點后臺語言
對于前端工程師來說,并不需要像網(wǎng)站程序員樣,編寫對象、開發(fā)特殊功能、搭建數(shù)據(jù)庫。但是前端工程師要掌握基本的頁面GET&POST傳參、程序判斷語法、程序輸出語法、頁面提交、數(shù)據(jù)庫查詢與記錄插入,以及掌握HTTP與WEB工作原理、掌握Socket長連接實時網(wǎng)絡(luò)通信技術(shù)、掌握 NOSQL中的 MONGODB的應(yīng)用、了解PHP語法、了解 MYSQL數(shù)據(jù)庫的基本操作。
當(dāng)然,以上技能能夠幫助你成為一個合格的前端工程師,但要成為一個優(yōu)秀的前端,必須掌握除技術(shù)以外的東西,例如設(shè)計,用戶等等,因此還需不斷的堅持學(xué)習(xí)。
網(wǎng)站名稱:Flutter分頁,flutter分頁表格
標(biāo)題網(wǎng)址:http://chinadenli.net/article49/dsehphh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站排名、網(wǎng)站設(shè)計、網(wǎng)頁設(shè)計公司、App設(shè)計、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)