滑動(dòng)功能主要分兩步:在onInterceptTouchEvent中進(jìn)行攔截。在onTouchEvent中進(jìn)行滑動(dòng)。1,onInterceptTouchEvent(MotionEvent en)在這個(gè)方法中,決定了什么時(shí)候截獲MotionEvent來實(shí)現(xiàn)滑動(dòng),避免了子View的其他事件的影響(如點(diǎn)擊事件)。
專注于為中小企業(yè)提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)阿勒泰免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
以前實(shí)現(xiàn)過這樣的效果。ViewPager頂部有一個(gè)Layout。下面ViewPager中的每個(gè)ListView有一個(gè)空白的Header當(dāng)前頁面上下滑動(dòng)的時(shí)候動(dòng)態(tài)的根據(jù)Y值去改變頂部的Layout的Y值。
添加layout布局文件,在xml設(shè)置動(dòng)畫屬性即可,上下左右四個(gè)方向均可以實(shí)現(xiàn) 。
Android:duration=2000Android:fromAlpha=0Android:toAlpha=0 / /set 代碼不會(huì)給你,長(zhǎng)不長(zhǎng)的不說,主要是不讓給。思路其實(shí)很簡(jiǎn)單,就是響應(yīng)屏幕觸點(diǎn)事件,判斷觸點(diǎn)區(qū)域,切換界面圖片。
看了一下這個(gè)效果,最先想到的辦法是利用一個(gè)叫“SlidMenu”的開源控件庫(kù)(就是人人/FaceBook/Path 樣式的側(cè)邊菜單),通過設(shè)置參數(shù)可以是側(cè)邊菜單顯示全屏。
然后寫一個(gè)觸摸監(jiān)聽器,監(jiān)聽你的手勢(shì)是上下還是左右,相應(yīng)的顯示相應(yīng)的頁面,隱藏其他的頁面。這樣應(yīng)該可以實(shí)現(xiàn)了同一個(gè)Activity之間切換多個(gè)頁面,我以前剛剛實(shí)現(xiàn)了類似的效果,只不過是通過點(diǎn)擊Activity上不同的導(dǎo)航條塊。
根據(jù)當(dāng)前頁面listview或者scrollview的滑動(dòng)距離設(shè)置translationY;切換tab時(shí),根據(jù)當(dāng)前header的高度調(diào)整下一個(gè)tab頁面的滾動(dòng)距離。
可以通過framelayout進(jìn)行布局,在該布局中放置多個(gè)頁面,默認(rèn)只讓第一個(gè)頁面VISIBLE,其他的NONE,然后寫一個(gè)觸摸監(jiān)聽器,監(jiān)聽你的手勢(shì)是上下還是左右,相應(yīng)的顯示相應(yīng)的頁面,隱藏其他的頁面。
效果展示通過使用循環(huán)容器的滾動(dòng)監(jiān)聽和設(shè)置值,同時(shí)配置前置條件實(shí)現(xiàn)滾動(dòng)到具體某一項(xiàng),實(shí)現(xiàn)頂部圖片滑動(dòng)聯(lián)動(dòng)底部圖片滑動(dòng)效果。
綜合這兩個(gè)控件的特性,可以使用ViewPager+Fragment的方式,即在ViewPager里嵌入Fragment的方式,實(shí)現(xiàn)頁面左右滑動(dòng)的效果。
左右滑動(dòng)切換是通過viewPager來實(shí)現(xiàn)的,完整代碼查看附件。
下面用GridView就能實(shí)現(xiàn),上面的左右滑動(dòng), 你百度下滑動(dòng)菜單 有很多教程的。
左右滑動(dòng)切換是通過viewPager來實(shí)現(xiàn)的,完整代碼查看附件。
android的滑動(dòng)效果是通過View容器類ViewFlipper來實(shí)現(xiàn)的。ViewFilpper 是Androidguan 方提供的一個(gè)View容器類,繼承于ViewAnimator類,用于實(shí)現(xiàn)頁面切換,也可以設(shè)定時(shí)間間隔,讓它自動(dòng)播放。
Android上還有一個(gè)東西叫做Fragment,這是一個(gè)依賴于Activity而又獨(dú)立的頁面。綜合這兩個(gè)控件的特性,可以使用ViewPager+Fragment的方式,即在ViewPager里嵌入Fragment的方式,實(shí)現(xiàn)頁面左右滑動(dòng)的效果。
Github上面有個(gè)人開源實(shí)現(xiàn)的,叫做ResideMenu,很好用,我自己的app就使用了這個(gè)Menu。
思路是寫一個(gè)AlphaImage類繼承ImageView,實(shí)現(xiàn)onTouchEvent方法,把事件傳遞給GestureDetector處理,并設(shè)置一個(gè)OnGestureListener監(jiān)聽。
問題場(chǎng)景 在項(xiàng)目的App中有一個(gè)ViewPager,它內(nèi)部包含了WebView,而內(nèi)部的webview加載了一個(gè)可以左右滑動(dòng)的網(wǎng)頁。
Android上有一個(gè)控件叫做ViewPager,該控件可以根據(jù)item的多少實(shí)現(xiàn)左右滑動(dòng)的效果。Android上還有一個(gè)東西叫做Fragment,這是一個(gè)依賴于Activity而又獨(dú)立的頁面。
以前有個(gè)抽屜效果的類,可以實(shí)現(xiàn)這個(gè)效果。不過這個(gè)類后來被摒棄了??梢杂肧lidingPanelLayout.java試試,不過這個(gè)只能左右方向,不能上下方向。