日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java - Fragment中的上下滑動事件會被上一個Fragment響應而不是當前的

瀏覽:203日期:2024-02-21 09:43:02

問題描述

我當前開發一個安卓app,只有一個activity,布局文件是中有一個ViewPager,其適配器綁了三個Fragment。前兩個Fragment的布局文件都是最外層SwipeRefreshLayout用于下拉刷新,然后嵌套一個ScrollView,第三個也準備這么弄但是發現問題。

當我進入app默認顯示第一個Fragment時,上下滑動屏幕是有滑動效果的,然而切換到第二個Fragment滑動就沒效果。接著我發現,當我在第二個Fragment中滑動后,再切換回第一個Fragment,發現反而是第一個Fragment界面響應了我的滑動操作。于是我嘗試切換到第三個Fragment,滑動后迅速切換到第二個Fragment,果然其界面正在滑動。

我并不知道這個原因到底是什么,但我試了一個辦法:通過重載setUserVisibleHint(),一旦離開一個Fragment,直接把整個Fragment設成Invisible,以這種方式,的確實現了滑動操作被當前Fragment響應。但我還是弄不懂之前為什么會有那樣的情況——在第一個和第二個Fragment中滑動屏幕,都是第一個Fragment響應,在第三個Fragment中滑動屏幕,則是第二個Fragment響應滑動操作。

我想知道,究竟出了什么問題,是什么原因導致的,我怎么才能解決(不通過設置Visibility的方法強行實現)?

Fragment布局文件代碼(只給出一個,另一個類似):

<?xml version='1.0' encoding='utf-8'?><android.support.v4.widget.SwipeRefreshLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:app='http://schemas.android.com/apk/res-auto' android: android:layout_width='match_parent' android:layout_height='match_parent'> <ScrollViewandroid: android:layout_width='match_parent'android:layout_height='match_parent'android:descendantFocusability='blocksDescendants'> <FrameLayoutandroid:layout_width='match_parent'android:layout_height='match_parent'><WebViewandroid: android:layout_width='match_parent'android:layout_height='wrap_content'android:alpha='0'/><ProgressBar android: android:layout_width='wrap_content' android:layout_height='wrap_content' android:layout_gravity='center' android:visibility='gone'/> </FrameLayout> </ScrollView></android.support.v4.widget.SwipeRefreshLayout>

問題解答

回答1:

問題解決了。。有一個信息在問題中沒有描述。那就是,我為了使ViewPager切換page時動畫為淡入淡出而不是默認的滑動,實現了ViewPager類的一個接口ViewPager.PageTransformer。然后,我在Activity中實例化這個類,并執行mViewPager.setPageTransformer(true, pageTransformer);就可以將切換動畫設置成我自己寫的動畫。問題就出在這個動畫上,一開始這個接口我是這么實現的:

import android.support.v4.view.ViewPager;import android.view.View;/**設置Fragment切換時的動畫為淡入淡出*/public class NoSlidingPageTransformer implements ViewPager.PageTransformer { private static final float MIN_ALPHA = 0.0f; //最小透明度 public void transformPage(View view, float position) {int pageWidth = view.getWidth(); //得到view寬if (position < -1) { // [-Infinity,-1) // This page is way off-screen to the left. 出了左邊屏幕 view.setAlpha(0);} else if (position <= 1) { // [-1,1] view.setTranslationX(-pageWidth * position); //阻止頁面的滑動 float alphaFactor = Math.max(MIN_ALPHA, 1 - Math.abs(position)); //透明度改變 view.setAlpha(alphaFactor); if (alphaFactor == 0)view.setVisibility(View.INVISIBLE); //頁面不在當前界面顯示,則使其Invisible,這句是為了解決Fragment對上下滑動事件監聽的錯亂,暫不知原因 else if (view.getVisibility() == View.INVISIBLE)view.setVisibility(View.VISIBLE); //頁面在當前界面顯示,則使其Visible,這句是為了解決Fragment對上下滑動事件監聽的錯亂,暫不知原因} else { // (1,+Infinity] // This page is way off-screen to the right. 出了右邊屏幕 view.setAlpha(0);} }}

其中這一段代碼是我臨時用來解決問題中描述的“靈異”現象的:

if (alphaFactor == 0) view.setVisibility(View.INVISIBLE); //頁面不在當前界面顯示,則使其Invisible,這句是為了解決Fragment對上下滑動事件監聽的錯亂,暫不知原因 else if (view.getVisibility() == View.INVISIBLE)view.setVisibility(View.VISIBLE); //頁面在當前界面顯示,則使其Visible,這句是為了解決Fragment對上下滑動事件監聽的錯亂,暫不知原因

問題在哪里呢?問題就在view.setTranslationX()這個函數上,這個函數所設置的view的位置,不僅僅是視覺上的,也是實際的位置,那么看我實現的這段代碼,在view離開當前界面的時候,position的值處于[-Infinity,-1]和[1,+Infinity]的時候,我并沒有用setTranslationX()將其位置設置到當前界面之外,而是還是與新出現的view在同一位置,只不過由于用setAlpha()設置了透明度才看不見的。我是怎么發現這個問題的呢?就是把這個類中的調用selAlpha()的代碼全注釋掉,再次運行,終于發現,當我切換Fragment的時候,會出現兩個Fragment重疊顯示的現象。現在我將這個類修改如下,問題解決(臨時代碼注釋掉了):

import android.support.v4.view.ViewPager;import android.view.View;/**設置Fragment切換時的動畫為淡入淡出*/public class NoSlidingPageTransformer implements ViewPager.PageTransformer { public void transformPage(View view, float position) {int pageWidth = view.getWidth(); //得到view寬if (position <= -1) { // [-Infinity,-1] // This page is way off-screen to the left. 出了左邊屏幕 view.setTranslationX(0);} else if (position < 1) { // (-1,1) view.setTranslationX(-pageWidth * position); //阻止頁面的滑動,位置在左則設向右偏移位置,在右則設向左偏移位置 float alphaFactor = 1 - Math.abs(position); //透明度改變 view.setAlpha(alphaFactor); /* if (alphaFactor == 0)view.setVisibility(View.INVISIBLE); //頁面不在當前界面顯示,則使其Invisible,這句是為了解決Fragment對上下滑動事件監聽的錯亂,暫不知原因 else if (view.getVisibility() == View.INVISIBLE)view.setVisibility(View.VISIBLE); //頁面在當前界面顯示,則使其Visible,這句是為了解決Fragment對上下滑動事件監聽的錯亂,暫不知原因*/} else { // [1,+Infinity] // This page is way off-screen to the right. 出了右邊屏幕 view.setTranslationX(0);} }}

標簽: java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲午夜久久久久久尤物 | 亚洲人亚洲人色久| 天堂8中文在线最新版在线| 久久精品凹凸全集| 国产精品白丝久久av网站| 国产精品一卡| 日韩精品欧美大片| 综合在线一区| 亚洲字幕久久| 国产日韩亚洲欧美精品| 丝袜亚洲另类欧美| 国产二区精品| 一区久久精品| 美日韩精品视频| 国产农村妇女精品一二区| 成人羞羞在线观看网站| 欧美影院精品| 国产精品.xx视频.xxtv| 国产精品成人一区二区网站软件| 欧美日韩在线精品一区二区三区激情综合| 久久99精品久久久野外观看| av最新在线| 影音国产精品| 国产探花一区| 欧美日韩免费观看视频| 中文国产一区| 国产精品一区亚洲| 欧美sss在线视频| 一二三区精品| 精品国产欧美日韩| 免费视频一区三区| 欧美一区自拍| 久久精品1区| 亚洲影视一区二区三区| 欧美另类中文字幕| 最近高清中文在线字幕在线观看1| 在线日韩电影| 热久久久久久| 99久久亚洲精品蜜臀| 日韩精品福利一区二区三区| 久久精品伊人| 免费成人性网站| 成人午夜网址| 免费日韩av片| 久久男人av资源站| 日韩激情中文字幕| 亚洲成人国产| 国产精品日本一区二区不卡视频 | 婷婷丁香综合| 91国内精品| 亚洲二区在线| 久久国产麻豆精品| 黑丝一区二区| 高清av一区| 日本综合精品一区| 婷婷亚洲综合| 精品日韩一区| 亚洲精品美女| 视频一区中文| 国产视频一区二区在线播放| 亚洲一区不卡| 久久在线免费| 国产精品99一区二区三区| 免费日本视频一区| 蜜臀国产一区| 国产视频一区二| 亚洲午夜久久| 99视频+国产日韩欧美| 国产一区精品福利| 国产日韩高清一区二区三区在线| 99综合视频| 韩国精品主播一区二区在线观看| 国产精品久久久久久妇女| 三级在线观看一区二区| 另类欧美日韩国产在线| 午夜久久av| 国产精品美女久久久| 在线手机中文字幕| 国产精品hd| 日韩成人一级| 日韩中文字幕麻豆| 亚洲精品一区二区妖精| 美女福利一区二区三区| 国产欧美亚洲一区| 欧美精品影院| 国产伦精品一区二区三区千人斩| 日韩精品久久理论片| 四虎精品永久免费| 亚洲欧美专区| 婷婷激情综合| 国模 一区 二区 三区| 电影天堂国产精品| 欧美男人天堂| 国产suv精品一区| 国产一区日韩| 久久免费视频66| 国产欧美视频在线| 国产精一区二区| 国产日韩一区二区三免费高清| 欧美中文一区| 国产免费av一区二区三区| 国产亚洲久久| 国产精品v一区二区三区| 美女免费视频一区| 91精品啪在线观看国产爱臀| 亚洲美女久久| 91免费精品国偷自产在线在线| 奇米狠狠一区二区三区| 欧美伊人影院| 鲁大师精品99久久久| 成人片免费看| 狠狠干成人综合网| 日韩欧美2区| 国产精品白丝一区二区三区| 九九九精品视频| 99国产精品免费视频观看| 国产精品女主播一区二区三区| 亚洲一区二区三区无吗| 青青草伊人久久| 奇米色欧美一区二区三区| 国产精品毛片久久久| zzzwww在线看片免费| 黄色成人精品网站| 日韩av一区二区在线影视| 精品久久亚洲| 好看的av在线不卡观看| 日韩欧美三区| 91亚洲一区| 国产精品毛片一区二区三区| 欧美亚洲三区| 欧美成人精品三级网站| 老牛国内精品亚洲成av人片| 国产手机视频一区二区| 2023国产精品久久久精品双| 久久尤物视频| 久久久噜噜噜| 人人精品人人爱| 久久福利在线| 在线日韩中文| **爰片久久毛片| 日韩中文在线播放| 日本亚洲欧美天堂免费| 成人免费一区| 亚洲精品女人| 国产一二在线播放| 日韩视频一区| 麻豆中文一区二区| 国产一区成人| 韩国一区二区三区视频| 久久激情网站| 国产欧美日韩影院| 女主播福利一区| 国产极品久久久久久久久波多结野 | 日本国产欧美| 亚洲精品成a人ⅴ香蕉片| 精品中文字幕一区二区三区| 国产一区导航| 成人亚洲一区| 亚洲日本免费电影| 九色porny丨国产首页在线| 婷婷成人av| 九九色在线视频| 国产麻豆精品| 蜜臀国产一区二区三区在线播放| 国产成人精品三级高清久久91 | 国产精品婷婷| 日韩欧美午夜| 欧美亚洲福利| 爽好久久久欧美精品| 另类专区亚洲| 国产精品欧美三级在线观看| 欧美精品黄色| 色在线中文字幕| 国产精品网址| 亚洲三级在线| 欧美午夜精品一区二区三区电影| 久久久91麻豆精品国产一区| 亚洲欧美一级| 午夜亚洲福利在线老司机| 成人久久一区| 亚洲深夜视频| 久草精品视频| 久久99偷拍| 国产午夜精品一区在线观看| 蜜臀久久99精品久久久画质超高清| 久久蜜桃精品| 都市激情国产精品| 精品在线网站观看| 国产精品草草| 国产精品片aa在线观看| 一区二区精品| 亚洲一二三区视频| 午夜亚洲一区| 国产精品毛片| 亚洲欧美日韩在线观看a三区| 午夜久久美女| 中文日韩在线| 国产一区二区精品| 久久国产精品99国产| 亚洲经典在线|