成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

怎么在Android中自定義ViewPager實(shí)現(xiàn)縱向滑動(dòng)翻頁(yè)效果

怎么在Android中自定義ViewPager實(shí)現(xiàn)縱向滑動(dòng)翻頁(yè)效果?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

十載專(zhuān)注建站、設(shè)計(jì)、互聯(lián)網(wǎng)產(chǎn)品定制設(shè)計(jì)服務(wù),業(yè)務(wù)涵蓋成都品牌網(wǎng)站建設(shè)、商城網(wǎng)站制作、微信小程序定制開(kāi)發(fā)、軟件系統(tǒng)開(kāi)發(fā)、重慶APP開(kāi)發(fā)公司等。憑借多年豐富的經(jīng)驗(yàn),我們會(huì)仔細(xì)了解每個(gè)客戶(hù)的需求而做出多方面的分析、設(shè)計(jì)、整合,為客戶(hù)設(shè)計(jì)出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)建站更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù),以推動(dòng)各中小企業(yè)全面信息數(shù)字化,并利用創(chuàng)新技術(shù)幫助各行業(yè)提升企業(yè)形象和運(yùn)營(yíng)效率。

public class VerticalViewPager extends ViewPager {
  public VerticalViewPager(Context context) {
    super(context);
  }
 
  public VerticalViewPager(Context context, AttributeSet attrs) {
    super(context, attrs);
  }
 
  @Override
  public boolean onTouchEvent(MotionEvent ev) {
    return super.onTouchEvent(swapTouchEvent(MotionEvent.obtain(ev)));
  }
 
  @Override
  public boolean onInterceptTouchEvent(MotionEvent ev) {
    return super.onInterceptTouchEvent(swapTouchEvent(MotionEvent.obtain(ev)));
  }
 
  private MotionEvent swapTouchEvent(MotionEvent event) {
    float width = getWidth();
    float height = getHeight();
    event.setLocation((event.getY() / height) * width, ((event.getX() / width) * height));
    return event;
  }
}

首先,我們自定義一個(gè)繼承ViewPager的類(lèi),我們重點(diǎn)關(guān)注一下swapTouchEvent()方法。這個(gè)方法是將MotionEvent事件的x坐標(biāo)換成y坐標(biāo),而y坐標(biāo)換成x坐標(biāo)。當(dāng)然,這個(gè)是參考百度的,我們理解了就好。其實(shí)現(xiàn)實(shí)在妙不可言!

public class VerticalPageTransformer implements ViewPager.PageTransformer {
  @Override
  public void transformPage(View view, float position) {
    /**
     * 0 當(dāng)前界面
     * -1 前一頁(yè)
     * 1 后一頁(yè)
     */
    if (position >= -1 && position <= 1) {
      view.setTranslationX(view.getWidth() * -position);
      float yPosition = position * view.getHeight();
      view.setTranslationY(yPosition);
    }
  }
}

上部分代碼,實(shí)現(xiàn)了界面由原來(lái)的橫向平移到縱向平移的過(guò)程。其思路是這樣的,我畫(huà)了一個(gè)草圖(湊合看,畢竟連幼兒園都沒(méi)畢業(yè),畫(huà)畫(huà)功底~~)

怎么在Android中自定義ViewPager實(shí)現(xiàn)縱向滑動(dòng)翻頁(yè)效果

這張圖描述了我們手機(jī)的屏幕,我們知道ViewPager,默認(rèn)是把三個(gè)界面橫向著排一起的,現(xiàn)在我們將其改為縱向的。
如果手指向下滑動(dòng),也就是第一個(gè)界面(綠色的),它將會(huì)進(jìn)入到我們的屏幕,然而當(dāng)前頁(yè)(紅色的)將退出屏幕,這是一套完整的流程,手指向上滑動(dòng),則方向相反。

view.setTranslationX(view.getWidth() * -position);
 float yPosition = position * view.getHeight();
 view.setTranslationY(yPosition);

看完上述內(nèi)容,你們掌握怎么在Android中自定義ViewPager實(shí)現(xiàn)縱向滑動(dòng)翻頁(yè)效果的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

本文名稱(chēng):怎么在Android中自定義ViewPager實(shí)現(xiàn)縱向滑動(dòng)翻頁(yè)效果
新聞來(lái)源:http://jinyejixie.com/article24/ggiije.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、小程序開(kāi)發(fā)品牌網(wǎng)站制作、標(biāo)簽優(yōu)化企業(yè)網(wǎng)站制作、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
云龙县| 仙居县| 洛南县| 马公市| 平度市| 化州市| 泸水县| 铜陵市| 南乐县| 罗山县| 永兴县| 湖口县| 丹阳市| 资阳市| 尼木县| 中卫市| 佛冈县| 莎车县| 修文县| 保靖县| 陵川县| 礼泉县| 高邮市| 莆田市| 固原市| 金华市| 嘉定区| 怀化市| 嘉鱼县| 六盘水市| 沾益县| 广河县| 武宣县| 渭源县| 舟山市| 长宁区| 邯郸县| 嘉荫县| 镇江市| 阳原县| 长白|