創新源於模仿之三 實現左右兩個螢幕的切換

2021-05-27 15:38:32 字數 1112 閱讀 3940

今天第三篇,模仿ucweb的首頁,做乙個可以左右滑動的雙屏。

而我們要做的事情就是分析它並精簡它(畢竟我們只是打算左右滑動罷了,並不需要能建立快捷方式資料夾之類的東西,更不需要在上面拖放圖示)。

+ expand source

view plain

因此,不管是drop還是drag,統統不需要了:

+ expand source

view plain

+ expand source

view plain

以上足矣。

然後在eclipse中會有大量的錯誤,沒關係,刪吧。

addview 是用來在**中新增新的子view的方法,不需要,我們只需要在layout xml中直接指定就好了。

getopenfolder/getopenfolders 資料夾相關的,當然不需要了。

addincurrentscreen/addwidget 都沒什麼用處了,可以刪掉。

與cell相關的那些也可以刪掉。

因為我們的**不能直接訪問mscrollx,所以需要換成getscrollx()。這一點是需要特別注意的。

看看我精簡後都剩下些什麼方法:

最後只要不報錯,就ok了。

我們來分析一下幾個關鍵的方法,其一是 ontouchevent:

+ expand source

view plain

其二 snaptodestination和snaptoscreen:

+ expand source

view plain

其三 computescroll,讓workspace滾動到合適的位置:

+ expand source

view plain

基本上就是這些了,其它方法都是輔助的,很好理解。

其實有乙個問題,我們發現ucweb主頁下面有三個點指示當前所處的位置,這個指示器我的想法是可以放在workspace外面來做,利用workspace當前的mcurrentscreen值顯示出當前正處於哪個屏。

給出我的layout xml描述:

+ expand source

view plain

就這樣了。這個分頁指示器就留給你自己去發揮了。

css實現內容不相同的左右兩個div等高

現在有兩個div左右排列,但是兩個div的內容不相同,如何設定兩個div的css做到在兩個div等高排列呢?下面是網上找的3種實現方法,覺得很有代表性,所以索性收藏起來。通過父元素設定overflow hidden,div自己設定padding bottom和margin bottom來實現。lef...

css實現內容不相同的左右兩個div等高

現在有兩個div左右排列,但是兩個div的內容不相同,如何設定兩個div的css做到在兩個div等高排列呢?下面是網上找的3種實現方法,覺得很有代表性,所以索性收藏起來。通過父元素設定overflow hidden,div自己設定padding bottom和margin bottom來實現。lef...

高頻面試題之三種方法實現兩個棧實現乙個佇列

高頻面試題 兩個棧實現乙個佇列 談到棧實現佇列首先我們必須了解棧和佇列的特點 棧 只允許在棧頂插入和刪除。佇列 插入在對尾操作,刪除在對頭操作.兩個棧實現乙個佇列 ps 這道題對程式設計者或面試者的要求 1.在短時間內,能不能找到解決這道題的足夠清晰的思路 思維是否敏捷 清晰 2.能不能在單向表述中...