久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

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

android - viewpager+Fragment(含有recyclerview+viewpager)低端的機子切換頁面滑動的時候明顯的卡頓

瀏覽:130日期:2024-09-04 17:06:04

問題描述

頁面類型一:紅框是個Fragment,頭部是一張大圖,下面都是為兩列的圖,用的是recyclerview實現android - viewpager+Fragment(含有recyclerview+viewpager)低端的機子切換頁面滑動的時候明顯的卡頓

頁面類型二:紅框是個Fragment,頭部是無線循環輪播,下面是欄目,用的是recyclerview實現android - viewpager+Fragment(含有recyclerview+viewpager)低端的機子切換頁面滑動的時候明顯的卡頓

頁面類型二:紅框是個Fragment,頭部是無線循環輪播,下面是兩列圖,用的是recyclerview實現android - viewpager+Fragment(含有recyclerview+viewpager)低端的機子切換頁面滑動的時候明顯的卡頓

首頁進來就是10個頁面(viewpager+Fragment),滑動切換頁面的時候低端機子會明顯卡頓,配置好的手機,如果快速滑動切換也不是那么流暢下面貼代碼:public class HomeContentItemFragment extends BaseFragment {

public static final String MODEL = 'model';public static final String TYPE = 'type_show';public static final String ISFIRSTPAGER = 'isFirstPager';// 安利電臺public final static int AUDIO_ID = 999999998; //點擊“聽見安利”的idpublic final static int SUBJECT_ID = 7; //點擊“主題專區”的idprivate final int RECOMMEND_ID = 100;// navId=100為推薦idprivate NavModel navModel;private List<VideoModel> videoList;private List<VideoModel> contentVideoList1,heardVideoList;private List<HomeContentVideoInfo> contentVideoList2;private ImageLoader imgImageLoader;private ImageView empty;private PtrClassicFrameLayout refreshLayout;private int TYPE_SHOW;//0默認頭部輪播頁面,1為單張大圖頁面,-1為含有二三級頁面private RecyclerView recyclerView;private ContentItemAdapter_recylerview adapter_recylerview;

public static HomeContentItemFragment newInstance(NavModel navModel,boolean isFirstPager,int TYPE_SHOW){ HomeContentItemFragment fragment = new HomeContentItemFragment(); Bundle bundle = new Bundle(); bundle.putSerializable(MODEL, navModel); bundle.putBoolean(ISFIRSTPAGER, isFirstPager); bundle.putInt(TYPE,TYPE_SHOW); fragment.setArguments(bundle); return fragment;}@Overridepublic void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);}private boolean isLogin;@Overrideprotected void initData(){ videoList=new ArrayList<VideoModel>(); imgImageLoader = ImageLoader.getInstance(); navModel = getArguments() != null ? (NavModel) getArguments().getSerializable(MODEL) : null; TYPE_SHOW=getArguments() != null ? getArguments().getInt(TYPE) : 0; isLogin = !UserDBUtil.getInstance(getApplicationContext()).isNeedLogin();

}private int navId;public void initVideoList(){if (navModel != null){ navId= (int) navModel.getNavId(); videoList.clear(); if (navModel.getNavId() == RECOMMEND_ID) {videoList = VideoDBUtil.getRecomendVideo(navModel.getNavId(), isLogin,getApplicationContext()); } else if (navModel.getNavId() == AUDIO_ID) {videoList = VideoDBUtil.getAudioVideo(isLogin,getApplicationContext()); } else if (navModel.getNavId() == SUBJECT_ID) {videoList = VideoDBUtil.getSubjectVideo(isLogin,getApplicationContext()); } else {videoList = VideoDBUtil.getCategoryVideo(navModel.getNavId(), isLogin,getApplicationContext()); }}if (videoList == null){ videoList = new ArrayList<VideoModel>();} //內容是顯示類型1 if(TYPE_SHOW==0||TYPE_SHOW==1){if(videoList!=null&&videoList.size()>0){ heardVideoList=new ArrayList<VideoModel>(); contentVideoList1=new ArrayList<VideoModel>(); for (int i=0;i<videoList.size();i++) {switch (TYPE_SHOW){ case 0:if(i<3){ heardVideoList.add(videoList.get(i));} else { contentVideoList1.add(videoList.get(i));}break; case 1:if(i<1){ heardVideoList.add(videoList.get(i));} else { contentVideoList1.add(videoList.get(i));}break;} }} } //內容是顯示類型2(含有下級菜單) if(TYPE_SHOW==-1){boolean haveThree=false;if(videoList.size()<=0){ List<NavModel> modelList=new ArrayList<NavModel>(); List<NavModel> modelList_2=new Select().from(NavModel.class).where(VideoDBConstant.VALID + ' = 1 and parent_id = ?',navModel.getNavId()).orderBy(VideoDBConstant.ORDER_ID + ' ASC').execute(); modelList.addAll(modelList_2); for (int j=0;j<modelList_2.size();j++){List<NavModel> modelList_3=new Select().from(NavModel.class).where(VideoDBConstant.VALID + ' = 1 and parent_id = ?',modelList_2.get(j).getNavId()).orderBy(VideoDBConstant.ORDER_ID + ' ASC').execute();modelList.addAll(modelList_3);if(modelList_3.size()>0){ haveThree=true;} } String str=''; if(haveThree){str='( valid= 1 and t_a_order != 0 and cId = '+modelList.get(0).getNavId()+' )' ;for (int k=1;k<modelList.size();k++){ str=str+' or ( valid= 1 and t_a_order != 0 and cId = '+modelList.get(k).getNavId()+' )';}videoList =new Select().from(VideoModel.class).where(str).orderBy('t_a_order ASC').execute();if(videoList.size()<3){ str='( valid= 1 and t_a_order = 0 and cId = '+modelList.get(0).getNavId()+' )' ; for (int k=1;k<modelList.size();k++){str=str+' or ( valid= 1 and t_a_order = 0 and cId = '+modelList.get(k).getNavId()+' )'; } List<VideoModel> videoModelList =new Select().from(VideoModel.class).where(str).orderBy('t_a_order ASC').execute(); for (int i=0;i<videoModelList.size();i++){videoList.add(videoModelList.get(i));if(videoList.size()>=3){ break;} }} }else {str='( valid= 1 and a_order != 0 and cId = '+modelList.get(0).getNavId()+' )' ;for (int k=1;k<modelList.size();k++){ str=str+' or ( valid= 1 and a_order != 0 and cId = '+modelList.get(k).getNavId()+' )';}videoList =new Select().from(VideoModel.class).where(str).orderBy('a_order ASC').execute();if(videoList.size()<3){ str='( valid= 1 and a_order = 0 and cId = '+modelList.get(0).getNavId()+' )' ; for (int k=1;k<modelList.size();k++){str=str+' or ( valid= 1 and a_order = 0 and cId = '+modelList.get(k).getNavId()+' )'; } List<VideoModel> videoModelList =new Select().from(VideoModel.class).where(str).orderBy('a_order ASC').execute(); for (int i=0;i<videoModelList.size();i++){videoList.add(videoModelList.get(i));if(videoList.size()>=3){ break;} }} }}heardVideoList=new ArrayList<VideoModel>();for (int i=0;i<videoList.size()&&i<3;i++){ heardVideoList.add(videoList.get(i));}if(navModel!=null){contentVideoList2=VideoDBUtil.getHomeContentVideo(navModel,1);} }

}

@Overrideprotected View initViews(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){ final View view = inflater.inflate(R.layout.fragment_home_content_item, container, false); refreshLayout= (PtrClassicFrameLayout) view.findViewById(R.id.refresh_layout); recyclerView= (RecyclerView) view.findViewById(R.id.recyclerView); empty= (ImageView) view.findViewById(R.id.emptydate); refreshLayout.setLastUpdateTimeRelateObject(this); refreshLayout.setPtrHandler(new PtrHandler() {@Overridepublic boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) { return PtrDefaultHandler.checkContentCanBePulledDown(frame, content, header);}@Overridepublic void onRefreshBegin(PtrFrameLayout frame) { new Thread(new Runnable() {@Overridepublic void run() { refreshData();} }).start();} }); if(TYPE_SHOW==-1){recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() { @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {outRect.left = getResources().getDimensionPixelSize(R.dimen.recyclerview_item_10);outRect.right = getResources().getDimensionPixelSize(R.dimen.recyclerview_item_10);if(parent.getChildLayoutPosition(view)==0){ outRect.top = getResources().getDimensionPixelSize(R.dimen.recyclerview_item_5);} }}); } else { GridLayoutManager gridLayoutManager=new GridLayoutManager(context,2,LinearLayoutManager.VERTICAL, false); gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {@Overridepublic int getSpanSize(int position) { if(position==0){return 2; } return 1;} }); recyclerView.setLayoutManager(gridLayoutManager); recyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {@Overridepublic void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { outRect.left = getResources().getDimensionPixelSize(R.dimen.recyclerview_item_5); outRect.right = getResources().getDimensionPixelSize(R.dimen.recyclerview_item_5); outRect.bottom = getResources().getDimensionPixelSize(R.dimen.recyclerview_item_5); outRect.top=getResources().getDimensionPixelSize(R.dimen.recyclerview_item_5); if(parent.getChildLayoutPosition(view)!=0){ if(parent.getChildLayoutPosition(view)%2==0){//右邊小圖outRect.right=getResources().getDimensionPixelSize(R.dimen.recyclerview_item_10); }else {//左邊小圖outRect.left=getResources().getDimensionPixelSize(R.dimen.recyclerview_item_10); } }else {outRect.left = getResources().getDimensionPixelSize(R.dimen.recyclerview_item_10);outRect.right = getResources().getDimensionPixelSize(R.dimen.recyclerview_item_10); }} }); } adapter_recylerview=new ContentItemAdapter_recylerview(null,null,null,getApplicationContext(),imgImageLoader,navId,TYPE_SHOW); recyclerView.setAdapter(adapter_recylerview); return view;}

@Overrideprotected void initWidgetActions(){ imgImageLoader = ImageLoader.getInstance(); adapter_recylerview.setOnItemClickListener(new ContentItemAdapter_recylerview.MyItemClickListener() {@Overridepublic void onItemClick(VideoModel videoModel) { onMyItemClick(videoModel);} }); MyAsyncTask asyncTask=new MyAsyncTask(); asyncTask.execute();}public void showData(){ if(videoList.size()==0){empty.setVisibility(View.VISIBLE); } adapter_recylerview.setVideoList(contentVideoList1, contentVideoList2, heardVideoList);}

@Overrideprotected void lazyLoad() { if(navModel==null){return; } if(SettingDBUtil.getInstance(getApplicationContext()).isHomeFirstOpen()&&navModel.getTitle().equals('健康')){BusProvider.getInstance().post(new ShowHelp());SettingDBUtil.getInstance(getApplicationContext()).setHomeFirstOpen(false); }}private void onMyItemClick(VideoModel videoModel){ if (videoModel.getType() == CommonConstant.TOPIC_TYPE) {Intent intent = new Intent(getActivity(), MyListActivity.class);intent.putExtra(MyListActivity.TYPE, MyListActivity.ActivtyType.TOPIC);intent.putExtra(TopicFragment.TOPIC_ID, videoModel.getVideoId());intent.putExtra(MyListActivity.TITLE, videoModel.getTitle());startActivity(intent); } else if (videoModel.getType() == CommonConstant.VIDEO_ON_LIVE_TYPE) {try{ if (NetWorkHelper.isNetworkAvailable(getActivity())) {if (NetWorkHelper.isWifiDataEnable(getActivity())){ Intent intent = new Intent(getActivity(), VideoOnLive.class); intent.putExtra(VideoDetailActivity.VIDEO_ID, videoModel.getVideoId() + ''); intent.putExtra(VideoDetailActivity.WEB_URL, videoModel.getWebUrl()); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_left_in, R.anim.no_anim);} else{ Hook(videoModel.getVideoId() + '', videoModel.getWebUrl());} } else {Toast.makeText(getApplicationContext(), '沒有網絡,無法觀看視頻。', Toast.LENGTH_LONG).show(); }} catch (Exception e){ // TODO Auto-generated catch block e.printStackTrace();} } else {Intent intent = new Intent(getActivity(), VideoDetailActivity.class);intent.putExtra(VideoDetailActivity.VIDEO_ID, videoModel.getVideoId());startActivity(intent);getActivity().overridePendingTransition(R.anim.push_left_in, R.anim.no_anim); }}private void Hook(final String videoId, final String webUrl){ Builder builder = new Builder(getActivity()); builder.setMessage('溫馨提示:非Wi-fi環境下,播放視頻會消耗較多流量!'); builder.setPositiveButton('繼續播放', new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int whichButton){ dialog.dismiss(); Intent intent = new Intent(getActivity(), VideoOnLive.class); intent.putExtra(VideoDetailActivity.VIDEO_ID, videoId); intent.putExtra(VideoDetailActivity.WEB_URL, webUrl); startActivity(intent); getActivity().overridePendingTransition(R.anim.push_left_in, R.anim.no_anim);} }); builder.setNegativeButton('暫不播放', new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog, int whichButton) { dialog.dismiss();} }); builder.show();}

private void refreshData() { Long lastLoadDataTime = SettingDBUtil.getInstance(context).getLastRefreshDataTime(); final long currentTime=System.currentTimeMillis(); RequestParams params = new RequestParams(VideoConstant.NEW_DATA_REFRESH +lastLoadDataTime); x.http().get(params, new Callback.CommonCallback<String>() {@Overridepublic void onSuccess(final String result) { Toast.makeText(getApplicationContext(),'更新成功',Toast.LENGTH_SHORT).show(); if (result != null && result.trim().length() > 10) {new Thread(new Runnable() { @Override public void run() {saveData(result); }}).start();SettingDBUtil.getInstance(context).setRefreshDataTime(currentTime); }}@Overridepublic void onError(Throwable ex, boolean isOnCallback) { Toast.makeText(getApplicationContext(),'更新失敗',Toast.LENGTH_SHORT).show();}@Overridepublic void onCancelled(CancelledException cex) {}@Overridepublic void onFinished() { refreshLayout.refreshComplete();} });}private void saveData(String result) { JSONObject obj = null; JSONArray videoArr = null; try {obj = new JSONObject(result);videoArr = obj.optJSONArray(VideoConstant.VIDEOLIST); } catch (JSONException e) { } if (videoArr != null) {ActiveAndroid.beginTransaction();try { for (int i = 0, videoLen = videoArr.length(); i < videoLen; i++) {VideoModel videoModel = new VideoModel();JSONObject navObj = videoArr.optJSONObject(i);videoModel.setVideoId(navObj.optLong(VideoConstant.ID));videoModel.setType(navObj.optInt(VideoConstant.TYPE));videoModel.setClicked(false);videoModel.setTitleUpload(navObj.optString(VideoConstant.TITLE_UPLOAD));videoModel.setrOrder(navObj.optInt(VideoConstant.RORDER));videoModel.setrId(navObj.optInt(VideoConstant.RID));videoModel.setcId(navObj.optInt(VideoConstant.CID));videoModel.setcOrder(navObj.optInt(VideoConstant.CORDER));videoModel.settId(navObj.optInt(VideoConstant.TID));videoModel.settOrder(navObj.optInt(VideoConstant.TORDER));videoModel.setTitle(navObj.optString(VideoConstant.TITLE));videoModel.setValid(navObj.optInt(VideoConstant.VALID));videoModel.setDetail(navObj.optString(VideoConstant.DETAIL));videoModel.setWebUrl(navObj.optString(VideoConstant.WEBURL));videoModel.setExpireDate(navObj.optInt(VideoConstant.EXPIREDATE));videoModel.setShootDate(navObj.optLong(VideoConstant.SHOOTDATE));videoModel.setIsVip(navObj.optInt(VideoConstant.IS_VIP));videoModel.setRole(navObj.optString(VideoConstant.ROLE));videoModel.setPermission(navObj.optInt(VideoDBConstant.PERMISSION));videoModel.setTags(navObj.optString(VideoConstant.TAGS));videoModel.setPicDate(navObj.optLong(VideoConstant.PICDATE));videoModel.setSign(navObj.optInt(VideoConstant.SIGN));videoModel.setaOrder(navObj.optInt(VideoDBConstant.A_ORDER));videoModel.settAOrder(navObj.optInt(VideoDBConstant.T_A_ORDER));try { VideoDBUtil.deleteVideo(videoModel.getVideoId());} catch (Exception e) { e.printStackTrace();}if (videoModel.getRole() == null || videoModel.getRole().trim().length() == 0) { videoModel.setRole(VideoConstant.NULL);}videoModel.save(); } ActiveAndroid.setTransactionSuccessful();}catch(Exception e) {}finally { ActiveAndroid.endTransaction();}getActivity().runOnUiThread(new Runnable() { @Override public void run() {BusProvider.getInstance().post(new RefreshEvent(navModel.getParent_id()));//通知更新數據 }}); }}

@Subscribepublic void scrollTop(ContentScrollTopEvent contentScrollTopEvent){ if(recyclerView!=null){recyclerView.smoothScrollToPosition(0); }}

@Overridepublic void onDestroy() { super.onDestroy(); if(adapter_recylerview!=null){adapter_recylerview.cancelTimer(); }}@Overridepublic void onResume() { super.onResume(); BusProvider.getInstance().register(this);}@Overridepublic void onPause() { super.onPause(); try {BusProvider.getInstance().unregister(this);//注銷 }catch (Exception e){}}class MyAsyncTask extends AsyncTask { @Override protected Object doInBackground(Object[] params) {initVideoList();return null; } @Override protected void onPostExecute(Object o) {showData();super.onPostExecute(o); }}

}

這是適配器代碼:public class ContentItemAdapter_recylerview extends RecyclerView.Adapter {

public final static int AUDIO_ID = 999999998; //點擊“聽見安利”的idpublic final static int SUBJECT_ID = 7; //點擊“主題專區”的idprivate List<VideoModel> contentVideoModelList1, contentVideoList, heardVideoList;private List<HomeContentVideoInfo> contentVideoModelList2;private Context context;protected DisplayImageOptions mOptions;protected ImageLoader mImageLoader;private int TYPE_SHOW = 0;//0默認頭部輪播頁面,1為單張大圖頁面,-1為含有二三級頁面private static final int TYPE_CONTENT = 0;private static final int TYPE_HEADER = 1;private int listSize;

public ContentItemAdapter_recylerview(List<VideoModel> contentVideoModelList1, List<HomeContentVideoInfo> contentVideoModelList2, List<VideoModel> heardVideoList, Context context, ImageLoader mImageLoader, long navId, int TYPE_SHOW) { this.contentVideoModelList1 = contentVideoModelList1; this.contentVideoModelList2 = contentVideoModelList2; this.heardVideoList = heardVideoList; this.context = context; this.mImageLoader = mImageLoader; this.navId = navId; this.TYPE_SHOW = TYPE_SHOW; mOptions = new DisplayImageOptions.Builder().showImageForEmptyUri(R.drawable.default_pic).showImageOnLoading(R.drawable.default_pic) .resetViewBeforeLoading(true).cacheInMemory(false).cacheOnDisc(true).imageScaleType(ImageScaleType.EXACTLY) .bitmapConfig(Bitmap.Config.RGB_565).displayer(new SimpleBitmapDisplayer()).build();}//搜索關鍵字private String keyword;protected long navId;private MyItemClickListener mItemClickListener;@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == TYPE_CONTENT) {if (TYPE_SHOW == 0 || TYPE_SHOW == 1) { return new ContentViewHolder1(View.inflate(context, R.layout.view_content_item, null));} else if (TYPE_SHOW == -1) { return new ContentViewHolder2(View.inflate(context, R.layout.view_home_content_item, null));} } else if (viewType == TYPE_HEADER) {if (TYPE_SHOW == 0 || TYPE_SHOW == -1) { return new HeaderViewHolderWithViewPager(View.inflate(context, R.layout.home_content_item_header, null));} else if (TYPE_SHOW == 1) { return new HeaderViewHolderWithImager(View.inflate(context, R.layout.view_content_home_header, null));} } return null;}@Overridepublic int getItemViewType(int position) { if (position == 0 && (heardVideoList == null ? false : heardVideoList.size() > 0 ? true : false)) {return TYPE_HEADER; } return TYPE_CONTENT;}public void setOnItemClickListener(MyItemClickListener listener) { this.mItemClickListener = listener;}@Overridepublic void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { //頭部顯示--單張大圖 if (holder instanceof HeaderViewHolderWithImager) {showHeaderViewWithImager((HeaderViewHolderWithImager) holder, heardVideoList.get(0)); } //頭部顯示--輪播 if (holder instanceof HeaderViewHolderWithViewPager) {showHeaderViewWithViewPager((HeaderViewHolderWithViewPager) holder); } //頭部以下內容顯示--類型1 if (holder instanceof ContentViewHolder1) {VideoModel videoModel = contentVideoModelList1.get(heardVideoList == null ? position : heardVideoList.size() > 0 ? position - 1 : position);showContentView1((ContentViewHolder1) holder, videoModel);if (!MyImageLoader.isMemoryCache(context, StorageHelper.getListSmallImgUrl(videoModel), ((ContentViewHolder1) holder).img, mImageLoader)) { mImageLoader.displayImage(StorageHelper.getListSmallImgUrl(videoModel), ((ContentViewHolder1) holder).img, mOptions);} } //頭部以下內容顯示--類型2 if (holder instanceof ContentViewHolder2) {showContentView2((ContentViewHolder2) holder, heardVideoList == null ? position : heardVideoList.size() > 0 ? position - 1 : position); }}public void setVideoList(List<VideoModel> contentVideoModelList1, List<HomeContentVideoInfo> contentVideoModelList2, List<VideoModel> heardVideoList) { this.contentVideoModelList1 = contentVideoModelList1; this.contentVideoModelList2 = contentVideoModelList2; this.heardVideoList = heardVideoList; notifyDataSetChanged();}

@Overridepublic int getItemCount() { listSize = 0; switch (TYPE_SHOW) {case 0: listSize = heardVideoList == null ? 0 : heardVideoList.size() > 0 ? 1 : 0; listSize = contentVideoModelList1 == null ? listSize : listSize + contentVideoModelList1.size(); break;case 1: listSize = heardVideoList == null ? 0 : 1; listSize = contentVideoModelList1 == null ? listSize : listSize + contentVideoModelList1.size(); break;case -1: listSize = heardVideoList == null ? 0 : heardVideoList.size() > 0 ? 1 : 0; listSize = contentVideoModelList2 == null ? listSize : listSize + contentVideoModelList2.size(); break; } return listSize;}

/** * @function 頭部--單張大圖——SHOW_DATA * @author mootor * created at 2016/8/16 17:32 */private HomeContentItemAdsAdapter homeContentItemAdsAdapter;private Timer timer;private TimerTask task;private int currentItemPosition = 0;private void showHeaderViewWithImager(HeaderViewHolderWithImager holder, VideoModel model) { holder.text.setText(model.getTitle()); holder.audioImg.setVisibility(View.GONE); if (model.getType() == CommonConstant.TOPIC_TYPE) {holder.topicImg.setVisibility(View.VISIBLE); } else {holder.topicImg.setVisibility(View.GONE);if (model.getIsVip() == 1 /*&& !UserDBUtil.getInstance(context).isNeedLogin()*/) {// vip holder.topicImg.setImageResource(R.drawable.corner_vip); holder.topicImg.setVisibility(View.VISIBLE);}if (StorageHelper.isAudioRes(model)) { holder.audioImg.setVisibility(View.VISIBLE);} } if (model.isClicked()) {holder.newVideoImg.setVisibility(View.GONE); } else {holder.newVideoImg.setVisibility(View.VISIBLE); } if (!MyImageLoader.isMemoryCache(context, StorageHelper.getListBigImgUrl(model), holder.img, mImageLoader)) {mImageLoader.displayImage(StorageHelper.getListBigImgUrl(model), holder.img, mOptions); }}

/** * @function 頭部--輪播——SHOW_DATA * @author mootor * created at 2016/8/16 18:25 */private void showHeaderViewWithViewPager(final HeaderViewHolderWithViewPager holder) { if (homeContentItemAdsAdapter == null) {homeContentItemAdsAdapter = new HomeContentItemAdsAdapter(context, heardVideoList, mImageLoader);holder.viewPager.removeAllViews();holder.viewPager.setAdapter(homeContentItemAdsAdapter);initDots(holder);//初始化指示器homeContentItemAdsAdapter.setOnItemClickListener(new MyItemClickListener() { @Override public void onItemClick(VideoModel videoModel) {if (mItemClickListener != null) { mItemClickListener.onItemClick(videoModel);} }});holder.viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) {currentItemPosition = position;if (heardVideoList.size() < 1) { return;}updateIntroAndDot(holder); } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageScrollStateChanged(int state) { }});if (heardVideoList.size() > 1) { holder.topAdTextView.setText(heardVideoList.get(0).getTitle()); //計時輪播 if (timer == null) {timer = new Timer(); } if (task == null) {task = new TimerTask() { public void run() {if (holder.viewPager != null) holder.viewPager.post(new Runnable() {@Overridepublic void run() { holder.viewPager.setCurrentItem(currentItemPosition + 1);} }); }};timer.schedule(task, 2000, 2000); }} }}public void cancelTimer(){ if(timer!=null){ timer.cancel(); }}

/** * @function 頭部以下內容——類型1——SHOW_DATA * @author mootor * created at 2016/8/16 18:25 */protected void showContentView1(ContentViewHolder1 holder, VideoModel model) { SpannableStringBuilder textString = null; keyword = Valuepass.newInstance().getKeywordsearch(); if (keyword != null) {textString = TextUtilTools.highlight(model.getTitle(), keyword); } else {textString = new SpannableStringBuilder(model.getTitle()); } holder.text.setText(textString); holder.audioImg.setVisibility(View.GONE); holder.topicImg.setVisibility(View.GONE); if (navId != AUDIO_ID && navId != SUBJECT_ID) {if (model.getIsVip() == 1 /*&& !UserDBUtil.getInstance(context).isNeedLogin()*/) {// vip holder.topicImg.setImageResource(R.drawable.corner_vip); holder.topicImg.setVisibility(View.VISIBLE);} else if (StorageHelper.isAudioRes(model)) {// 音頻 holder.audioImg.setVisibility(View.VISIBLE);} else if (model.getType() == CommonConstant.TOPIC_TYPE) {// topic holder.topicImg.setImageResource(R.drawable.home_topic); holder.topicImg.setVisibility(View.VISIBLE);} } if (model.isClicked()) {holder.newVideoImg.setVisibility(View.GONE); } else {holder.newVideoImg.setVisibility(View.VISIBLE); }}

/** * @function 頭部以下內容——類型2——SHOW_DATA * @author mootor * created at 2016/8/17 11:51 */private void showContentView2(final ContentViewHolder2 holder, final int position) { if (contentVideoModelList2.get(position).getVideoModelList().size() >= 1) {holder.content_layout.setVisibility(View.VISIBLE);holder.contentLayout1.setVisibility(View.VISIBLE);updateHolder(holder, contentVideoModelList2.get(position).getVideoModelList().get(0), 1, contentVideoModelList2.get(position).getNavModel().getNavId());final ContentViewHolder2 finalHolder1 = holder;if (!MyImageLoader.isMemoryCache(context, StorageHelper.getListSmallImgUrl(contentVideoModelList2.get(position).getVideoModelList().get(0)), finalHolder1.img1, mImageLoader)) { mImageLoader.displayImage(StorageHelper.getListSmallImgUrl(contentVideoModelList2.get(position).getVideoModelList().get(0)), finalHolder1.img1, mOptions);}holder.contentLayout1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {if (mItemClickListener != null) { VideoModel videoModel = contentVideoModelList2.get(position).getVideoModelList().get(0); if (!videoModel.isClicked()) {holder.newVideoImg1.setVisibility(View.GONE);videoModel.setClicked(true);videoModel.save(); } mItemClickListener.onItemClick(videoModel);} }}); } else {holder.content_layout.setVisibility(View.GONE);holder.contentLayout1.setVisibility(View.GONE);holder.contentLayout2.setVisibility(View.GONE); }

if (contentVideoModelList2.get(position).getVideoModelList().size() >= 2) {holder.contentLayout2.setVisibility(View.VISIBLE);updateHolder(holder, contentVideoModelList2.get(position).getVideoModelList().get(1), 2, contentVideoModelList2.get(position).getNavModel().getNavId());final ContentViewHolder2 finalHolder = holder;if (!MyImageLoader.isMemoryCache(context, StorageHelper.getListSmallImgUrl(contentVideoModelList2.get(position).getVideoModelList().get(1)), finalHolder.img2, mImageLoader)) { mImageLoader.displayImage(StorageHelper.getListSmallImgUrl(contentVideoModelList2.get(position).getVideoModelList().get(1)), finalHolder.img2, mOptions);}holder.contentLayout2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {if (mItemClickListener != null) { VideoModel videoModel = contentVideoModelList2.get(position).getVideoModelList().get(1); if (!videoModel.isClicked()) {holder.newVideoImg2.setVisibility(View.GONE);videoModel.setClicked(true);videoModel.save(); } mItemClickListener.onItemClick(videoModel);} }}); } else {holder.contentLayout2.setVisibility(View.INVISIBLE); } holder.title.setText(contentVideoModelList2.get(position).getNavModel().getTitle()); holder.moreBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) { BusProvider.getInstance().post(new ContentItemEven(null, contentVideoModelList2.get(position).getNavModel(), 2, position));} });}

/** * @function 頭部以下內容——類型2——SHOW_DATA * @author mootor * created at 2016/8/17 11:52 */protected void updateHolder(ContentViewHolder2 holder, VideoModel model, int item, long navId) { SpannableStringBuilder textString = null; keyword = Valuepass.newInstance().getKeywordsearch(); if (keyword != null) {textString = TextUtilTools.highlight(model.getTitle(), keyword); } else {textString = new SpannableStringBuilder(model.getTitle()); } if (item == 1) {holder.text1.setText(textString);holder.audioImg1.setVisibility(View.GONE);holder.topicImg1.setVisibility(View.GONE); } else {holder.text2.setText(textString);holder.audioImg2.setVisibility(View.GONE);holder.topicImg2.setVisibility(View.GONE); } if (navId != AUDIO_ID && navId != SUBJECT_ID) {if (model.getIsVip() == 1 /*&& !UserDBUtil.getInstance(context).isNeedLogin()*/) {// vip if (item == 1) {holder.topicImg1.setImageResource(R.drawable.corner_vip);holder.topicImg1.setVisibility(View.VISIBLE); } else {holder.topicImg2.setImageResource(R.drawable.corner_vip);holder.topicImg2.setVisibility(View.VISIBLE); }} else if (StorageHelper.isAudioRes(model)) {// 音頻 if (item == 1) {holder.audioImg1.setVisibility(View.VISIBLE); } else {holder.audioImg2.setVisibility(View.VISIBLE); }} else if (model.getType() == CommonConstant.TOPIC_TYPE) {// topic if (item == 1) {holder.topicImg1.setImageResource(R.drawable.home_topic);holder.topicImg1.setVisibility(View.VISIBLE); } else {holder.topicImg2.setImageResource(R.drawable.home_topic);holder.topicImg2.setVisibility(View.VISIBLE); }} } if (model.isClicked()) {if (item == 1) { holder.newVideoImg1.setVisibility(View.GONE);} else { holder.newVideoImg2.setVisibility(View.GONE);} } else {if (item == 1) { holder.newVideoImg1.setVisibility(View.VISIBLE);} else { holder.newVideoImg2.setVisibility(View.VISIBLE);} }}

/** * @author mootor * created at 2016/8/17 11:40 * @function 頭部以下內容——類型2——VIEW */public class ContentViewHolder2 extends RecyclerView.ViewHolder { private LinearLayout content_layout; private RelativeLayout contentLayout1; private RelativeLayout contentLayout2; private TextView title; private ImageView moreBtn; private ImageView img1; private TextView text1; private ImageView audioImg1; private ImageView newVideoImg1; private ImageView topicImg1; private ImageView img2; private TextView text2; private ImageView audioImg2; private ImageView newVideoImg2; private ImageView topicImg2; public ContentViewHolder2(View itemView) {super(itemView);content_layout = (LinearLayout) itemView.findViewById(R.id.content_layout);contentLayout1 = (RelativeLayout) itemView.findViewById(R.id.content_layout1);contentLayout2 = (RelativeLayout) itemView.findViewById(R.id.content_layout2);title = (TextView) itemView.findViewById(R.id.titleTv);moreBtn = (ImageView) itemView.findViewById(R.id.moreBtn);img1 = (ImageView) itemView.findViewById(R.id.content_img1);text1 = (TextView) itemView.findViewById(R.id.content_text1);audioImg1 = (ImageView) itemView.findViewById(R.id.audio_mark_img1);newVideoImg1 = (ImageView) itemView.findViewById(R.id.new_video_img1);topicImg1 = (ImageView) itemView.findViewById(R.id.topic_img1);img2 = (ImageView) itemView.findViewById(R.id.content_img2);text2 = (TextView) itemView.findViewById(R.id.content_text2);audioImg2 = (ImageView) itemView.findViewById(R.id.audio_mark_img2);newVideoImg2 = (ImageView) itemView.findViewById(R.id.new_video_img2);topicImg2 = (ImageView) itemView.findViewById(R.id.topic_img2); }}

/** * @author mootor * created at 2016/8/17 11:55 * @function 頭部——單張大圖——VIEW */private class HeaderViewHolderWithImager extends RecyclerView.ViewHolder { RelativeLayout headerLayout; ImageView img; TextView text; ImageView audioImg; ImageView newVideoImg; ImageView topicImg; public HeaderViewHolderWithImager(View itemView) {super(itemView);headerLayout = (RelativeLayout) itemView.findViewById(R.id.header_box);img = (ImageView) itemView.findViewById(R.id.content_img);text = (TextView) itemView.findViewById(R.id.content_text);audioImg = (ImageView) itemView.findViewById(R.id.audio_mark_img);newVideoImg = (ImageView) itemView.findViewById(R.id.new_video_img);topicImg = (ImageView) itemView.findViewById(R.id.topic_img);headerLayout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {if (mItemClickListener != null) { newVideoImg.setVisibility(View.GONE); VideoModel videoModel = heardVideoList.get(0); mItemClickListener.onItemClick(videoModel);} }}); }}

/** * @author mootor * created at 2016/8/17 11:56 * @function 頭部輪播——VIEW */public class HeaderViewHolderWithViewPager extends RecyclerView.ViewHolder { private ViewPager viewPager; private TextView topAdTextView; private LinearLayout topAdDotLayout; private ImageView topToLeftBtn, topToRightBtn; public HeaderViewHolderWithViewPager(View itemView) {super(itemView);viewPager = (ViewPager) itemView.findViewById(R.id.viewPager);topAdTextView = (TextView) itemView.findViewById(R.id.tv_intro);topAdDotLayout = (LinearLayout) itemView.findViewById(R.id.dot_layout);topToLeftBtn = (ImageView) itemView.findViewById(R.id.topic_left_img);topToRightBtn = (ImageView) itemView.findViewById(R.id.topic_right_img);topToLeftBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {if (viewPager != null && heardVideoList.size() > 1) { viewPager.setCurrentItem(currentItemPosition - 1);} }});topToRightBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {if (viewPager != null && heardVideoList.size() > 1) { viewPager.setCurrentItem(currentItemPosition + 1);} }});try {//這里設置輪播切換過程的緩沖時間500毫秒 Field field = ViewPager.class.getDeclaredField('mScroller'); field.setAccessible(true); ViewPagerScroller scroller = new ViewPagerScroller(context, new AccelerateInterpolator()); field.set(viewPager, scroller); scroller.setmDuration(500);} catch (Exception e) {} }}/** * @author mootor * created at 2016/8/17 11:56 * @function 頭部以下內容——類型1——VIEW */protected class ContentViewHolder1 extends RecyclerView.ViewHolder { public ImageView img, audioImg, newVideoImg, topicImg; public TextView text; public RelativeLayout layout;

public ContentViewHolder1(View itemView) {super(itemView);layout = (RelativeLayout) itemView.findViewById(R.id.layout);img = (ImageView) itemView.findViewById(R.id.content_img);text = (TextView) itemView.findViewById(R.id.content_text);audioImg = (ImageView) itemView.findViewById(R.id.audio_mark_img);newVideoImg = (ImageView) itemView.findViewById(R.id.new_video_img);topicImg = (ImageView) itemView.findViewById(R.id.topic_img);layout.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) {if (mItemClickListener != null) { newVideoImg.setVisibility(View.GONE); VideoModel videoModel = contentVideoModelList1.get(heardVideoList == null ? getPosition() : heardVideoList.size() > 0 ? getPosition() - 1 : getPosition()); mItemClickListener.onItemClick(videoModel); videoModel.setClicked(true); videoModel.save();} }}); }}

/** * @author mootor * created at 2016/8/17 11:54 * @function item點擊監聽 */public interface MyItemClickListener { void onItemClick(VideoModel videoModel);}

/** * 初始化dot——頭部輪播 */private void initDots(HeaderViewHolderWithViewPager viewHolder) { for (int i = 0; i < heardVideoList.size(); i++) {View view = new View(context);LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(15, 15);if (i != 0) { params.leftMargin = 8;}view.setLayoutParams(params);view.setBackgroundResource(R.drawable.selector_dot);if (i != 0) { view.setEnabled(false);}viewHolder.topAdDotLayout.addView(view); }}/** * 更新文本——頭部輪播 */private void updateIntroAndDot(HeaderViewHolderWithViewPager view) { try {int currentPage = view.viewPager.getCurrentItem() % heardVideoList.size();view.topAdTextView.setText(heardVideoList.get(currentPage).getTitle());for (int i = 0; i < view.topAdDotLayout.getChildCount(); i++) { view.topAdDotLayout.getChildAt(i).setEnabled(i == currentPage);} } catch (Exception e) { }}

}

問題解答

回答1:

你好,我做過比這個更稍微復雜的效果,不過也是ViewPager+Fragment的組合,里面也是頭部輪播圖+列表,不過我們是動態的,針對ViewPager+Fragment這個組合效果的話,一般網上好多建議是1.Fragment采用懶加載方式2.盡量使用FragmentStateAdapter(具體原因,你可以百度)3.使用緩存機制避免重復的網絡請求4.延遲進行網絡請求5.使用一些比較出色的開源框架,比如圖片框架可以使用性能出色的Fresco。6.就是一些基礎的知識點,比如盡量避免UI線程中過多耗時操作,7.就是Fragment的一些基礎知識,比如生命周期控制(避免出現內存泄露或者是空指針),然后可以進行狀態保存這些是暫時能想到的,我當時采用了這些方式,效果在低端機上還可以,

回答2:

你的布局是什么

回答3:

看你的代碼 沒有做 緩存啊

回答4:

等待最終的解決辦法!

相關文章:
主站蜘蛛池模板: 天天干人人 | 1区在线 | 免费视频二区 | 久久九九| 成人激情视频 | 久久成人精品一区二区三区 | 综合在线视频 | 在线看亚洲 | 91精品国产综合久久久久久丝袜 | 精品视频久久久 | 超碰操 | 一级毛片一级毛片一级毛片 | 久久人人爽人人爽人人片亚洲 | 少妇久久久 | 欧美 | 久久久亚洲一区 | 蜜桃一区二区 | 免费观看黄色 | 99热少妇 | 成人国产精品久久久 | 欧美精品影院 | 精品国产一区二区三区成人影院 | 亚洲精品久久久久久久久久久 | 国产成人精品亚洲日本在线观看 | 中文字幕国产视频 | 亚洲精品成人在线 | 久久99精品久久久久久琪琪 | 免费国产视频在线观看 | 国产小视频在线播放 | 99视频网站 | 一区二区中文 | 日韩精品一区二区三区老鸭窝 | 久久骚 | 中文字幕在线资源 | 欧美人成在线视频 | 欧美日韩亚洲视频 | 日本高清中文字幕 | 亚洲精品www久久久 www.蜜桃av | 国产福利片在线 | 精品一区二区不卡 | 中文字幕日韩在线 | 国产精品一区二区三区四区 | 日韩欧美在线观看视频 | 日本精品免费 | 98精品国产高清在线xxxx天堂 | 北条麻妃一区二区三区中文字幕 | 国产精品1区 | 成人免费网站在线观看 | 欧美午夜一区二区三区 | 久久伊人中文字幕 | 日韩精品99久久久久中文字幕 | 精品久久97| 日韩欧美一区二区三区免费观看 | 在线观看免费视频日韩 | www.日韩.com| 中文字幕99 | 欧美一区二区三区精品 | 亚洲不卡 | 欧美日韩中文字幕在线 | 色偷偷噜噜噜亚洲男人 | 国产日韩欧美在线 | 欧美一区永久视频免费观看 | 在线一级视频 | 北条麻妃99精品青青久久 | 成人影音| 日韩精品视频在线观看一区二区 | 日韩成人av在线 | 毛片a片 | 欧美在线观看网站 | av网站免费观看 | 一级电影在线观看 | 久久中文字幕一区 | 久久草在线视频 | 精品欧美一区二区三区久久久 | 在线一区 | 久久久久黄 | av天天网| 成人深夜在线观看 | 欧美日韩一区二区在线播放 | 欧美午夜视频在线观看 | 日韩性在线 | 欧美日韩视频一区二区 | 亚洲欧美日韩精品久久亚洲区 | 91亚洲高清| 久草新 | 欧美第一视频 | 国产激情一区二区三区成人免费 | 亚洲一区二区在线看 | 国产激情精品视频 | 麻豆国产一区二区三区四区 | 午夜成人在线视频 | 久久成人一区二区 | 99re久久 | 一级片视频免费 | 性欧美大战久久久久久久免费观看 | 亚洲国产成人精品女人 | 中文字幕一区二区三区四区 | 亚洲综合无码一区二区 | 欧美一级黄色大片 | av大片在线观看 | 日本视频一区二区三区 | 中国妞videos高潮 | 97免费在线观看视频 | 国产黄色大片 | 国产精品国产三级国产aⅴ中文 | 欧美一区2区三区4区公司二百 | 久久久久久久久久久久久久久久久久久 | 情五月 | 久久人人爽人人爽 | 中国特黄毛片 | 青青草综合在线 | 97超碰在线免费 | 午夜国产影院 | www日韩 | 精品一区二区三区中文字幕 | 成人av播放 | 精品一区二区三区四区五区 | 国产乱码精品一区二区三区中文 | 国产情侣自拍啪啪 | 日日摸日日碰夜夜爽不卡dvd | 国产精品福利在线观看 | 亚洲一区二区三区欧美 | 免费一二区 | 亚洲国产精品区 | 99视频精品 | 日韩视频一区二区三区在线观看 | 欧美三级网址 | 羞羞视频在线免费 | 国产免费一区二区三区网站免费 | 欧美日韩精品久久 | 精品福利在线视频 | 亚洲精品网址 | 成人免费小视频 | 久久综合久久综合久久综合 | 成年人在线看片 | 国产精品久久久久久吹潮 | a在线看 | 午夜国产精品视频 | 国产精品久久久久久亚洲调教 | 国产精品亚洲视频 | 亚洲成av人片一区二区梦乃 | 亚洲欧美一区二区精品中文字幕 | 亚洲 国产 另类 精品 专区 | 欧美精品一区二区三区四区五区 | 日韩不卡av | 一级免费在线视频 | 国产精品视频入口 | 久久777 | 亚洲精品综合 | 欧美日韩一区在线 | 手机看片国产精品 | 91一区二区| 国产精品com | 中文一区 | 久久精品免费国产 | 国产二区视频 | 午夜草逼 | 99精品久久久久 | 一区二区三区免费在线观看 | 自拍偷拍亚洲视频 | 成人在线免费小视频 | 久久久久久亚洲 | 国产精品久久久久久久久久东京 | 久久精品一 | 日韩在线视频观看 | 成av在线| 国产亚洲精品久久久闺蜜 | 午夜小电影 | 日韩av黄色 | 91丨九色丨国产 | 精品一区二区三区免费毛片爱 | 欧美三级在线视频 | 综合色久 | 青青草亚洲 | 欧美日韩精品一区 | 午夜专区| 亚洲精品久久 | 91精品一区二区三区久久久久久 | 午夜三区| 日韩精品一区二区三区在线观看 | 欧美伦理一区二区三区 | 日韩视频在线观看一区二区 | 色欧美视频 | 中文无码久久精品 | 久久精品国产免费 | 在线观看91 | 午夜精品久久久久 | 日韩电影免费在线观看中文字幕 | 亚洲一区成人在线观看 | 三级视频在线 | 日日爱夜夜爱 | 久久99国产精品久久99大师 | 噜噜噜在线视频 | 国产精品久久久久久久久久久久久久 | 国产乱码精品一区二区三 | 成人久久18免费观看 | 久久这里只有精品首页 | 精品香蕉一区二区三区 | 亚洲成人久久久久 | 亚洲午夜精品在线观看 | 国产精品久久精品 | 久久久久久久久国产 | 色婷婷综合在线 | 一级黄色片看看 | 蜜桃av网址 | 欧美一区二区三区精品免费 | 亚洲黄色av网站 | 九九热这里只有精品6 | 伊人天堂在线 | 成人激情视频在线观看 | 久久美女 | 久久99热精品免费观看牛牛 | 欧美视频在线免费 | 亚洲精品一区二区三区四区高清 | 日韩欧美国产一区二区 | 在线视频国产一区 | 亚洲国产精品久久人人爱 | 午夜影院在线 | 亚洲人成人一区二区在线观看 | zzz444成人天堂7777 | 日韩欧美一区二区三区免费观看 | 2020亚洲视频| 日本黄色电影网站 | 99爱视频| 亚洲精品一二三区 | 热re99久久精品国99热线看 | 伊人欧美视频 | 欧洲毛片 | 中文字幕在线一区 | 精品国产欧美 | 狠狠ri| 天天操天天碰 | 亚洲国产高清高潮精品美女 | 久久精品美女 | 午夜电影在线看 | 亚洲午夜电影在线 | 久久精品国产99国产精品 | 韩国电影久久影院 | 成人在线观看中文字幕 | 国产一区二区三区不卡在线观看 | 91在线播放视频 | 91久久精品一区二区三区 | 夜夜骑首页| 超碰偷拍 | 亚洲精品专区 | 自拍视频在线播放 | 国产精品1区2区 | 91精品国产人妻国产毛片在线 | 色香阁99久久精品久久久 | 成人国产一区二区 | 一区二区三区在线免费观看 | 国产精品一区三区 | 国产精品久久久久婷婷二区次 | 人人看人人射 | 日本男人的天堂 | 一区二区免费看 | 一区在线免费观看 | 91精品国产综合久久久亚洲 | 久9久9 | 天堂中文视频在线观看 | 中文字幕精品一区久久久久 | 久久综合成人精品亚洲另类欧美 | 午夜影院免费 | 国产精品7 | 精品亚洲一区二区 | 在线中文视频 | www.夜夜骑 | 91影院| 亚洲免费一区二区 | 日韩精品观看 | 国产精品观看 | 韩日精品视频 | 午夜亚洲| 国产成人久久精品麻豆二区 | 久热九九 | 欧美激情在线精品一区二区三区 | 81精品国产乱码久久久久久 | 日韩国伦理久久一区 | 国产视频久久久久久久 | 国产美女久久久 | 天堂va在线高清一区 | 在线成人av| 欧美aaa大片 | 国产美女黄色片 | 亚洲精品久久久久久久久久久 | 欧美福利 | 亚洲精品中文字幕 | 国产婷婷在线视频 | 一区二区欧美视频 | 国产成人av电影 | 天堂中文视频在线观看 | 日韩中文字幕免费在线 | 女人夜夜春高潮爽a∨片传媒 | 青青草草| 欧美久久久久 | 久草热8精品视频在线观看 亚洲区在线 | 欧美激情视频一区二区三区在线播放 | 中文字幕av在线 | 久久丁香| 久久另类ts人妖一区二区 | 亚洲婷婷一区 | 日本欧美国产 | 天天拍天天干天天操 | 中文字幕色| 日本在线网 | 国产福利片在线 | 在线观看免费毛片视频 | 91麻豆精品国产91久久久久久 | 久久99国产精品 | 亚洲一区中文字幕永久在线 | 欧美精品久久久久 | 国产91色| 亚洲精品在线播放 | 久久国产精品99久久久久久老狼 | 国产在线一二三区 | 校园春色av | 欧洲视频一区二区三区 | 精品国产黄a∨片高清在线 99热婷婷 | 午夜免费福利电影 | 图片区 国产 欧美 另类 在线 | 中文字幕在线免费视频 | 99久久国产综合精品女不卡 | 欧美日韩精品区 | 国产精品毛片 | 2024天天干 | 午夜影院在线观看 | 综合在线视频 | 国产精品久久久久久中文字 | 久久久综合网 | 欧美成人一区二区三区片免费 | www.日韩三级 | 久草视频在线观 | 国产成人午夜 | 成人精品一区二区 | 在线一区观看 | 日韩中文在线播放 | 国产不卡视频在线观看 | 国产精品激情在线观看 | 99亚洲精品 | 91免费视频 | 特黄视频| 国产高清精品一区二区三区 | 成人在线网 | 国产v日产∨综合v精品视频 | 亚洲在线播放 | 999精品免费 | 日日爽 | 欧美午夜一区二区三区免费大片 | 免费一区二区 | 日本欧美在线观看 | 涩涩999| 国产午夜小视频 | 国产一区二区在线看 | 国产精品91久久久久 | 黄色免费av | 成人精品鲁一区一区二区 | 欧美激情伊人 | 亚洲一区二区在线播放 | 亚洲成人精品视频 | 日夜夜精品 | 亚洲免费在线观看 | 操操日| 久久韩国| 久久蜜桃av | 97国产一区二区精品久久呦 | 午夜天| 欧美在线激情 | 国产精品久久久久久久久久久杏吧 | 久久久看片 | 黄色一级大片视频 | 久久久国产精品 | 日韩精品一区二区三区四区五区 | 蜜桃精品在线观看 | 国产精品久久久久无码av | 亚洲www啪成人一区二区 | 黄色永久网站 | 国产成人在线一区 | 国产精品久久久久久久一区探花 | 久久久久久国产免费视网址 | 成人久久久久爱 | 夜夜爽99久久国产综合精品女不卡 | 美日韩在线| 国产一区久久 | 国产成人精品免高潮在线观看 | 亚洲综合大片69999 | 午夜私人影院在线观看 | 久久白虎 | 欧美激情综合色综合啪啪五月 | 久久久www成人免费无遮挡大片 | 欧美一区二区三区在线观看视频 | 色综合久久久久 | 日韩精品av一区二区三区 | 国产伦精品一区二区三区四区视频_ | 日韩成人在线免费视频 | 日韩久久久久 | 91一区在线 | 在线成人av | 日韩91 | 国产精品美女 | 日韩在线免费观看网站 | 电影91久久久 | av在线一区二区三区 | 在线观看一区 | 中文字幕精品一区久久久久 | 免费看国产一级特黄aaaa大片 | 国产极品视频在线观看 | 国产精品99久久久久久久vr | 黄色一级毛片免费 | 日韩在线欧美 | 一本大道久久a久久精二百 国产精品片aa在线观看 | 欧美一级免费高清 | 亚洲欧美国产一区二区三区 | 一区国产精品 | 在线观看国产视频 | 午夜影院黄色 | 91精品国产一区二区 | 国产精品大片在线观看 | 国产精品99久久久久 | 91精品国产综合久久久久久漫画 | 亚洲国产激情 | 免费的一级视频 | 中文字幕一区二区三区四区 | 欧美精品一区二区三区在线播放 | 久久av资源| 欧美在线观看禁18 | av在线免费观看一区二区 | 中文字幕欧美日韩 | 国产大学生援交视频在线观看 | 99久久婷婷国产精品综合 | 免费一区 | 日本在线视频观看 | 日韩精品 | 欧美黄色网 | 99视频在线 | 久久免费精品视频 | 精品成人免费视频 | 精品久久久久久久久久久久久久 | 人人精久 | 久久精品这里热有精品 | 极品久久 | 成人精品视频在线观看 | 一级毛片免费观看 | 久久99精品久久久久久久青青日本 | 精品国产一区二区三区久久久蜜 | 天堂在线www | 欧美电影一区二区三区 | 久久综合久久久 | 成人国产精品久久久 | 国产一区二区三区久久 | 69性欧美高清影院 | 国产一区www | 国产精品91网站 | 亚洲精品一区二区三区蜜桃久 | 极情综合网 | 精品亚洲国产成av人片传媒 | 午夜视频网站 | 成人免费毛片aaaaaa片 | 日韩中文字幕一区二区 | 精品视频久久 | 国产成人福利 | 午夜免费视频福利 | 福利视频1000 | 久久久国产精品一区 | 九色网址 | 成人欧美一区二区三区在线播放 | 91视频国产网站 | 免费毛片在线播放 | 欧美精品1区 | 精品国产欧美一区二区三区成人 | 国产一区精品在线 | 亚洲欧美另类在线 | 国产亚洲一区二区三区 | 国产日韩欧美精品一区二区三区 | 久久久久久久香蕉 | 国产精品一区一区三区 | 亚洲 欧美 日韩在线 | 亚洲 中文 欧美 日韩 在线观看 | 国产98色在线 | 日韩 | 日韩精品一区二区三区在线播放 | 亚洲高清视频在线观看 | 婷婷激情五月 | 日韩aaa久久蜜桃av | 亚洲精品美女在线观看 | 日韩精品一区二区三区在线观看 | 国产亚洲欧美精品永久 | 精品国产1区2区3区 在线国产视频 | 国产一级片播放 | 正在播放亚洲 | 一级特黄毛片 | 免费黄色在线视频网址 | 国产精品久久久久久久久久东京 | 视频一区二区三区免费观看 | 老司机福利在线观看 | 国产片在线观看 | 天堂久久久久久 | 中文字幕毛片 | 欧美男人的天堂 | 国产亚洲一区二区精品 | 欧美人成在线观看 | 日日操夜夜操天天操 | 黄色小视频在线观看 | 中文字幕在线免费 | 欧美激情在线狂野欧美精品 | 久久精品亚洲欧美日韩精品中文字幕 | 欧美精品一区二区三区在线四季 | 一区精品视频 | 亚洲乱码一区二区 | 久久精品123| 婷婷久久综合 | 91久久久久 | 亚洲国产1区 | 欧美日韩中文国产一区发布 | 男女羞羞视频网站 | 中文字幕日韩欧美一区二区三区 | 欧美午夜在线观看 | 国产大片aaa | 国产成人在线电影 | 久久夜色精品 | 欧美黑人狂躁日本寡妇 | 国产最好的精华液网站 | 精品久久久久久久 | 国产三级一区二区 | 久久mm | 成人区一区二区三区 | 国产精品日韩专区 | 欧美日韩一级在线观看 | 久久久久久1 | 国产欧美久久久久久 | 欧美日韩视频第一页 | 日韩成人久久 | 国产视频一区二区三区四区 | 亚洲午夜av| 欧美精品在线观看免费 | 欧美黄色大片网站 | 国产欧美日韩综合精品 | 国产色视频在线观看免费 | 国产亚洲一区二区在线 | 久草新免费 | 日韩欧美一区二区三区四区 | 91久久夜色精品国产网站 | 中文字幕精品一区 | 九九热在线免费视频 | 亚洲高清视频在线观看 | 日韩精品一区二区三区在线观看 | 国产综合亚洲精品一区二 | 五月激情综合网 | 精品久久久久久久久久久久 | 中文字幕在线播放一区 | 91精品一区二区三区久久久久久 | 久久国产婷婷国产香蕉 | 欧美一级片aaa | 精品中出| 亚洲一区二区三区爽爽爽爽爽 | 精品一区二区在线观看 | 日本高清视频在线播放 | 国产午夜精品久久久久久久 | 国产午夜精品一区二区 | 福利网在线| 国产精品视频一区二区三区 | 欧美午夜在线观看 | 操操操操操 | 中文字幕综合在线 | 欧美一区二区三区在线视频 | 色中色综合 | 欧美日一级片 | 日本涩涩网站 | 伊人网一区 | 欧美激情在线播放 | 精品国产欧美一区二区三区成人 | 亚洲三区在线观看 | 日韩中文字幕免费在线播放 | 欧洲精品视频在线观看 | av午夜电影| 亚洲精品区 | 欧美日韩大片在线观看 | 日韩av在线不卡 | 国产免费av在线 | 黄色国产精品 | 国产日韩精品一区二区 | 91在线视频 | 一级特黄网站 | 黑人粗黑大躁护士 | 成人久久久久爱 | 欧美日韩在线看 | 日韩视频在线观看一区 | 亚洲国产福利一区 | 久久国产精品久久久久久久久久 | 久久激情网 | 日韩电影三级 | 亚洲视频一区在线播放 | 成人精品一区 | 亚洲综合视频在线观看 | 亚洲一区二区中文字幕 | 国内精品视频一区 | 久久国产香蕉视频 | 天天爽视频| 国产日韩欧美激情 | 成人一级电影在线观看 | 国产一级片 | 成人av在线看 | 午夜精品福利在线观看 | 国产在线一区二区 | 露娜同人18av黄漫网站 | 日本三级视频 | 国产精品久久久久久久岛一牛影视 | 亚洲精品免费视频 | 国产福利免费视频 | 成人免费在线视频 | 国产日韩欧美一区 | 国产精品一二区 | 亚洲欧美日韩电影 | 日韩国产欧美 | 日日操狠狠操 | 91久久久久久 | 日本高清中文字幕 |