日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)

發(fā)布時(shí)間:2025/6/15 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

現(xiàn)如今主流的Android應(yīng)用中,都少不了左右滑動(dòng)滾屏這項(xiàng)功能,(貌似現(xiàn)在好多人使用智能機(jī)都習(xí)慣性的有事沒事的左右滑屏,也不知道在干什么。。。嘿嘿),由于前段時(shí)間項(xiàng)目的需要,所以也對(duì)其研究了一下,總的來(lái)說滑屏實(shí)現(xiàn)有三種方式:(至于其他的實(shí)現(xiàn)方式目前后還沒碰到。。。)

1.ViewPager?2.ViewFlipper 3.ViewFlow


一.ViewPager


官方文檔介紹:http://developer.android.com/reference/android/support/v4/view/ViewPager.html


根據(jù)繼承關(guān)系我們可以看出,ViewPager不在android sdk 自帶jar包中,來(lái)源google 的補(bǔ)充組件android-support-v4.jar中,所以我們?cè)?.0以前的版本中使用就需要導(dǎo)入該jar包了。


1.1 介紹該類是一個(gè)布局管理器,它允許用戶通過滑動(dòng)左、右頁(yè)的數(shù)據(jù)。你必須要一個(gè)實(shí)現(xiàn)了PagerAdapter接口從而生成的頁(yè)面視圖。


1.2 使用:

activity_main.xml

1 2 3 4 5 6 7 8 9 10 <RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????xmlns:tools="http://schemas.android.com/tools" ????android:layout_width="match_parent" ????android:layout_height="match_parent"?> ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????<android.support.v4.view.ViewPager ????????android:id="@+id/viewpager" ????????android:layout_width="fill_parent" ????????android:layout_height="fill_parent"?/> </RelativeLayout>


MainActivity類:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 package?comzhf.android_viewpager; import?java.util.ArrayList; import?java.util.List; import?android.os.Bundle; import?android.app.Activity; import?android.support.v4.view.ViewPager; import?android.view.LayoutInflater; import?android.view.View; import?android.view.View.OnClickListener; import?android.widget.Button; import?android.widget.TextView; import?android.widget.Toast; /** ?* 主界面:ViewPagerViewPager不在android sdk 自帶jar包中,來(lái)源google 的補(bǔ)充組件android-support-v4.jar ?*/ public?class?ViewPagerActivity?extends?Activity { ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????private?ViewPager mViewPager; ????List<View> viewList; ????@Override ????protected?void?onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main); ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????LayoutInflater mInflater = getLayoutInflater().from(this); ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????View v1 = mInflater.inflate(R.layout.layout1,?null); ????????View v2 = mInflater.inflate(R.layout.layout2,?null); ????????View v3 = mInflater.inflate(R.layout.layout3,?null); ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????//添加頁(yè)面數(shù)據(jù) ????????viewList =?new?ArrayList<View>(); ????????viewList.add(v1); ????????viewList.add(v2); ????????viewList.add(v3); ????????//實(shí)例化適配器 ????????mViewPager = (ViewPager) findViewById(R.id.viewpager); ????????mViewPager.setAdapter(new?MyPagerAdapter(viewList)); ????????mViewPager.setCurrentItem(0);?//設(shè)置默認(rèn)當(dāng)前頁(yè) ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????View view = viewList.get(0); ????????TextView textView = (TextView) view.findViewById(R.id.text_1); ????????textView.setText("我是第一頁(yè)"); ????????Button button = (Button) view.findViewById(R.id.button_1); ????????button.setOnClickListener(new?OnClickListener() { ????????????public?void?onClick(View v) { ????????????????// TODO Auto-generated method stub ????????????????Toast.makeText(getApplicationContext(),?"你點(diǎn)擊了按鈕", Toast.LENGTH_SHORT).show(); ????????????????} ????????}); ????} }


這里還有三個(gè)布局文件:layout1.xml (其余兩個(gè)類似,略)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 <?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????android:layout_width="fill_parent" ????android:layout_height="fill_parent" ????android:orientation="vertical" ????android:background="@drawable/guide01"?> ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????<TextView ????????android:id="@+id/text_1" ????????android:layout_width="wrap_content" ????????android:layout_height="wrap_content" ????????android:layout_gravity="center_horizontal" ????????android:text="葉片一" ????????android:textSize="25sp"?/> ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????<Button ????????android:id="@+id/button_1" ????????android:layout_width="fill_parent" ????????android:layout_height="wrap_content" ????????android:text="點(diǎn)擊我" ????????> ????</Button> ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? </LinearLayout>


效果圖:

??

補(bǔ)充說明:

1.這里我們用了Layout作為每個(gè)page的填充數(shù)據(jù),其實(shí)官方文檔說ViewPager+Fragment配合使用更好

2.每個(gè)頁(yè)面的響應(yīng)事件我們可以在OnPageChangeListener監(jiān)聽器類中進(jìn)行捕獲和處理對(duì)應(yīng)事件。


二.ViewFlipper


官方文檔:http://developer.android.com/reference/android/widget/ViewFlipper.html

2.1 介紹:ViewFilpper控件是系統(tǒng)自帶控件之一,主要用于在同一個(gè)屏幕間的切換及設(shè)置動(dòng)畫效果、間隔時(shí)間,且可以自動(dòng)播放。

順便提及一下,View動(dòng)畫關(guān)系圖:

2.2 使用:

2.2.1 靜態(tài)加載

activity_main.xml:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????xmlns:tools="http://schemas.android.com/tools" ????android:layout_width="match_parent" ????android:layout_height="match_parent"?> ????<ViewFlipper ????????android:id="@+id/body_flipper" ????????android:layout_width="fill_parent" ????????android:layout_height="fill_parent" ????????android:background="#f0f0f0"?> ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????<include ????????????android:id="@+id/layout01" ????????????layout="@layout/page1"?/> ????????<include ????????????android:id="@+id/layout02" ????????????layout="@layout/page2"?/> ????????<include ????????????android:id="@+id/layout02" ????????????layout="@layout/page3"?/> ????????<include ????????????android:id="@+id/layout02" ????????????layout="@layout/page4"?/> ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????</ViewFlipper> </RelativeLayout>

MainActivity類:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 package?com.zhf.android_viewflipper_view; import?android.os.Bundle; import?android.app.Activity; import?android.view.MotionEvent; import?android.view.View; import?android.view.View.OnTouchListener; import?android.view.animation.AnimationUtils; import?android.widget.ViewFlipper; /** ?* ViewFlipper 靜態(tài)加載 ?* @author ZHF **/ public?class?MainActivity?extends?Activity?implements?OnTouchListener{ ????private?ViewFlipper viewFlipper; ????private?float touchDownX;??// 手指按下的X坐標(biāo) ????private?float touchUpX;??//手指松開的X坐標(biāo) ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????@Override ????public?void?onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main); ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????viewFlipper = (ViewFlipper) findViewById(R.id.body_flipper); ????????viewFlipper.setOnTouchListener(this); ????} ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????@Override ????public?boolean onTouch(View v, MotionEvent event) { ????????if?(event.getAction() == MotionEvent.ACTION_DOWN) { ????????????// 取得左右滑動(dòng)時(shí)手指按下的X坐標(biāo) ????????????touchDownX = event.getX(); ????????????return?true; ????????}?else?if?(event.getAction() == MotionEvent.ACTION_UP) { ????????????// 取得左右滑動(dòng)時(shí)手指松開的X坐標(biāo) ????????????touchUpX = event.getX(); ????????????// 從左往右,看前一個(gè)View ????????????if?(touchUpX - touchDownX >?100) { ????????????????// 顯示上一屏動(dòng)畫 ????????????????viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, ???????????????????????R.anim.push_right_in)); ????????????????viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, ????????????????????????R.anim.push_right_out)); ????????????????// 顯示上一屏的View ????????????????viewFlipper.showPrevious(); ????????????????// 從右往左,看后一個(gè)View ????????????}?else?if?(touchDownX - touchUpX >?100) { ????????????????//顯示下一屏的動(dòng)畫 ????????????????viewFlipper.setInAnimation(AnimationUtils.loadAnimation(this, ????????????????????????R.anim.push_left_in)); ????????????????viewFlipper.setOutAnimation(AnimationUtils.loadAnimation(this, ????????????????????????R.anim.push_left_out)); ????????????????// 顯示下一屏的View ????????????????viewFlipper.showNext(); ????????????} ????????????return?true; ????????} ????????return?false; ????} }

動(dòng)畫配置文件(右進(jìn)右出同理,略):

push_left_in.xml:

1 2 3 4 5 6 7 8 9 10 11 <?xml version="1.0"?encoding="utf-8"?> <set?xmlns:android="http://schemas.android.com/apk/res/android"?> ????<translate ????????android:duration="500" ????????android:fromXDelta="100.0%p" ????????android:toXDelta="0.0"?/> ????<alpha ????????android:duration="500" ????????android:fromAlpha="0.1" ????????android:toAlpha="1.0"?/> </set>

push_left_out.xml:

1 2 3 4 5 6 7 8 9 10 11 <?xml version="1.0"?encoding="utf-8"?> <set?xmlns:android="http://schemas.android.com/apk/res/android"?> ????<translate ????????android:duration="500" ????????android:fromXDelta="0.0" ????????android:toXDelta="-100.0%p"?/> ????<alpha ????????android:duration="500" ????????android:fromAlpha="1.0" ????????android:toAlpha="0.1"?/> </set>

效果:

?

向左滑屏 向右滑屏

補(bǔ)充

上述的page只有4個(gè),而真實(shí)項(xiàng)目中的page頁(yè)面?zhèn)€數(shù)是不確定的,所以下面這種方式是項(xiàng)目中經(jīng)常用到的。


2.2.2 動(dòng)態(tài)加載重要

參考文章:http://blog.csdn.net/yuzhiboyi/article/details/7702953

activity_main2.xml

1 2 3 4 5 6 7 8 9 10 11 <RelativeLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????xmlns:tools="http://schemas.android.com/tools" ????android:layout_width="match_parent" ????android:layout_height="match_parent"?> ????<com.zhf.android_viewflipper_view.MyViewFlipper ????????android:id="@+id/body_flipper" ????????android:layout_width="fill_parent" ????????android:layout_height="fill_parent" ????????android:background="#f0f0f0"?> ????</com.zhf.android_viewflipper_view.MyViewFlipper> </RelativeLayout>

flipper_view.xml:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 <?xml version="1.0"?encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" ????android:layout_width="fill_parent" ????android:layout_height="fill_parent" ????android:scrollbars="none"?> ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????<LinearLayout ????????android:layout_width="fill_parent" ????????android:layout_height="wrap_content" ????????android:gravity="center" ????????android:orientation="vertical"?> ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????<ImageView ????????????android:layout_width="wrap_content" ????????????android:layout_height="wrap_content" ????????????android:src="@drawable/ic_launcher"?/> ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????<TextView ????????????android:id="@+id/textView" ????????????android:textSize="100dip" ????????????android:layout_width="wrap_content" ????????????android:layout_height="wrap_content"?/> ????</LinearLayout> ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? </ScrollView>

注:這里并不是所有的View都能有onFling回調(diào)函數(shù),外部需要加ScrollView !

MyGestureListener類:自定義滑動(dòng)事件監(jiān)聽器

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 package?com.zhf.android_viewflipper_view; import?android.view.GestureDetector.SimpleOnGestureListener; import?android.view.MotionEvent; /** ?* 自定義滑動(dòng)事件監(jiān)聽器 ?* SimpleOnGestureListener已經(jīng)實(shí)現(xiàn)了OnGestureListener接口和OnDoubleTapListener接口, ?* 可以有選擇性的復(fù)寫需要的方法,提供方法onFling()作為滑動(dòng)事件的回調(diào)函數(shù) ?* @author ZHF ?* ?*/ public?class?MyGestureListener?extends?SimpleOnGestureListener{ ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????private?OnFlingListener mOnFlingListener; ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????/**用戶按下觸摸屏、快速移動(dòng)后松開,由1個(gè)MotionEvent ACTION_DOWN, 多個(gè)ACTION_MOVE, 1個(gè)ACTION_UP觸發(fā) **/ ????@Override ????public?final?boolean?onFling(final?MotionEvent e1,?final?MotionEvent e2, ????????????final?float?speedX,?final?float?speedY) { ????????if?(mOnFlingListener ==?null) { ????????????return?super.onFling(e1, e2, speedX, speedY); ????????} ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????float?XFrom = e1.getX();??//按下坐標(biāo) ????????float?XTo = e2.getX(); ????????float?YFrom = e1.getY(); ????????float?YTo = e2.getY(); ????????// 左右滑動(dòng)的X軸幅度大于100,并且X軸方向的速度大于100 ????????if?(Math.abs(XFrom - XTo) >?100.0f && Math.abs(speedX) >?100.0f) { ????????????// X軸幅度大于Y軸的幅度 ????????????if?(Math.abs(XFrom - XTo) >= Math.abs(YFrom - YTo)) { ????????????????if?(XFrom > XTo) { ????????????????????// 下一個(gè) ????????????????????mOnFlingListener.flingToNext(); ????????????????}?else?{ ????????????????????// 上一個(gè) ????????????????????mOnFlingListener.flingToPrevious(); ????????????????} ????????????} ????????}?else?{ ????????????return?false; ????????} ????????return?true; ????} ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????/**自定義滑動(dòng)的回調(diào)接口**/ ????public?interface?OnFlingListener { ????????void?flingToNext();??//滑動(dòng)到下一頁(yè) ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????void?flingToPrevious();??//滑動(dòng)到上一頁(yè) ????} ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????public?OnFlingListener getOnFlingListener() { ????????return?mOnFlingListener; ????} ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????public?void?setOnFlingListener(OnFlingListener mOnFlingListener) { ????????this.mOnFlingListener = mOnFlingListener; ????} }


MyViewFlipper類:自定義View滑動(dòng)類:監(jiān)聽滑動(dòng)事件,并做切換視圖的處理。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 package?com.zhf.android_viewflipper_view; import?android.content.Context; import?android.util.AttributeSet; import?android.view.GestureDetector; import?android.view.MotionEvent; import?android.view.View; import?android.widget.ViewFlipper; import?com.zhf.android_viewflipper_view.MyGestureListener.OnFlingListener; /** ?* 自定義View滑動(dòng)類:監(jiān)聽滑動(dòng)事件,并做切換視圖的處理。 ?* @author ZHF ?* ?*/ public?class?MyViewFlipper?extends?ViewFlipper?implements?OnFlingListener { ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????//手勢(shì)監(jiān)聽類 ????private?GestureDetector mGestureDetector =?null; ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????private?OnViewFlipperListener mOnViewFlipperListener =?null; ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????public?MyViewFlipper(Context context) { ????????super(context); ????} ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????public?MyViewFlipper(Context context, AttributeSet attrs) { ????????super(context, attrs); ????} ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????public?void?setOnViewFlipperListener(OnViewFlipperListener mOnViewFlipperListener) { ????????this.mOnViewFlipperListener = mOnViewFlipperListener; ????????//初始化自定義滑動(dòng)事件監(jiān)聽器 ????????MyGestureListener myGestureListener =?new?MyGestureListener(); ????????//綁定自定義的滑動(dòng)監(jiān)聽器 ????????myGestureListener.setOnFlingListener(this); ????????mGestureDetector =?new?GestureDetector(myGestureListener); ????} ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????@Override ????public?boolean onInterceptTouchEvent(MotionEvent ev) { ????????if?(null?!= mGestureDetector) { ????????????return?mGestureDetector.onTouchEvent(ev); ????????}?else?{ ????????????return?super.onInterceptTouchEvent(ev); ????????} ????} ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????/**向下一條滑動(dòng)事件**/ ????@Override ????public?void?flingToNext() { ????????if?(null?!= mOnViewFlipperListener) { ????????????int?childCnt = getChildCount(); ????????????if?(childCnt ==?2) { ????????????????removeViewAt(1); ????????????} ????????????addView(mOnViewFlipperListener.getNextView(),?0); ????????????if?(0?!= childCnt) { ????????????????setInAnimation(getContext(), R.anim.push_left_in); ????????????????setOutAnimation(getContext(), R.anim.push_left_out); ????????????????setDisplayedChild(0); ????????????} ????????} ????} ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????/**向上一條滑動(dòng)事件**/ ????@Override ????public?void?flingToPrevious() { ????????if?(null?!= mOnViewFlipperListener) { ????????????int?childCnt = getChildCount(); ????????????if?(childCnt ==?2) { ????????????????removeViewAt(1); ????????????} ????????????addView(mOnViewFlipperListener.getPreviousView(),?0); ????????????if?(0?!= childCnt) { ????????????????setInAnimation(getContext(), R.anim.push_right_in); ????????????????setOutAnimation(getContext(), R.anim.push_right_out); ????????????????setDisplayedChild(0); ????????????} ????????} ????} ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????/**自定義View變化監(jiān)聽回調(diào)接口**/ ????public?interface?OnViewFlipperListener { ????????View getNextView();???//獲取下一頁(yè)View ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????View getPreviousView();??//獲取上一頁(yè)View ????} }

MainActivity2類:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 package?com.zhf.android_viewflipper_view; import?com.zhf.android_viewflipper_view.MyViewFlipper.OnViewFlipperListener; import?android.app.Activity; import?android.os.Bundle; import?android.view.LayoutInflater; import?android.view.View; import?android.widget.ScrollView; import?android.widget.TextView; /** ?* ViewFlipper 動(dòng)態(tài)加載 ?* @author ZHF ?*/ public?class?MainActivity2?extends?Activity?implements?OnViewFlipperListener{ ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??????private?MyViewFlipper myViewFlipper; ??????private?int?currentNumber; ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????@Override ????protected?void?onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main2); ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????currentNumber =?1;??//默認(rèn)頁(yè)號(hào) ????????myViewFlipper = (MyViewFlipper) findViewById(R.id.body_flipper); ????????//給ViewFlipper綁定自定義的滑動(dòng)監(jiān)聽器 ????????myViewFlipper.setOnViewFlipperListener(this); ????????//初始化頁(yè)面數(shù)據(jù),即View ????????myViewFlipper.addView(createView(currentNumber)); ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????} ????/**獲取下一頁(yè)View**/ ????@Override ????public?View getNextView() { ????????currentNumber = currentNumber ==?10???1?: currentNumber +?1; ????????return?createView(currentNumber); ????} ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????/**獲取上一頁(yè)View**/ ????@Override ????public?View getPreviousView() { ????????currentNumber = currentNumber ==?1???10?: currentNumber -?1; ????????return?createView(currentNumber); ????} ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????/**更換View數(shù)據(jù):這里是根據(jù)頁(yè)號(hào)來(lái)更換textView上的文字**/ ????private?View createView(int?currentNumber) { ????????LayoutInflater layoutInflater = LayoutInflater.from(this); ????????ScrollView resultView = (ScrollView) layoutInflater.inflate(R.layout.flipper_view,?null); ????????((TextView) resultView.findViewById(R.id.textView)).setText(currentNumber +?""); ????????return?resultView; ????} }

效果圖:

--向左滑動(dòng)(漸變過程不好截圖)-->?

補(bǔ)充說明:

上述的三個(gè)類:

MyGestureListener:繼承了SimpleGestureListener手勢(shì)監(jiān)聽類, 復(fù)寫了該類onFling()方法,用于監(jiān)聽用戶按下滑動(dòng)事件的處理;還自定義了滑動(dòng)的回調(diào)接口OnFlingListener(包含了兩個(gè)抽象方法flingToNext(),flingToPrevious)。


MyViewFlipper:是一個(gè)自定義ViewFlipper,該類首先實(shí)現(xiàn)和綁定了上一個(gè)類中的滑動(dòng)的回調(diào)接口OnFlingListener,完成了接口中兩個(gè)重要的方法。同時(shí)定義了一個(gè)View變化監(jiān)聽回調(diào)接口OnViewFlipperListener(包含了兩個(gè)抽象方法getNextView(),getPreviousView())。


MainActivity2:加載布局,實(shí)現(xiàn)監(jiān)聽,統(tǒng)一處理頁(yè)面數(shù)據(jù)View和滑動(dòng)事件的綁定。


三.ViewFlow類


3.1介紹

ViewFlow不是google官方的api,它是gethub上的一個(gè)開源項(xiàng)目,利用ViewFlow可以產(chǎn)生視圖切換的效果。ViewFlow 相當(dāng)于 Android UI 部件提供水平滾動(dòng)的 ViewGroup,使用 Adapter 進(jìn)行條目綁定,例如ViewPager或是ViewFlipper。它提供了三個(gè)組件ViewFlow、FlowIndicator和TitleFlowIndicator,一般情況下,當(dāng)你需要做一個(gè)滑動(dòng)然而不確定view的數(shù)目時(shí),可以考慮使用ViewFlow。如果你的view數(shù)目確定,使用Fragments 或兼容庫(kù)里的ViewPager比較好 。


3.2使用:

A.首先下載ViewFlow開源庫(kù)代碼:

官方文檔:https://github.com/pakerfeldt/android-viewflow

B.下載之后我們解壓打開viewflow文件夾:

C.建項(xiàng)目將這三個(gè)類直接復(fù)制過來(lái)放項(xiàng)目中使用即可。







注:這里可能還需要一個(gè)styleable文件,直接將value文件夾下的attrs.xml拷入即可。

activity_main.xml

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 <?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????xmlns:app="http://schemas.android.com/apk/res/com.zhf.android_viewflow" ????android:layout_width="fill_parent" ????android:layout_height="fill_parent" ????android:orientation="vertical"?> ????<FrameLayout ????????android:layout_width="fill_parent" ????????android:layout_height="fill_parent" ????????android:orientation="vertical"?> ????????<RelativeLayout ????????????android:layout_width="fill_parent" ????????????android:layout_height="135dp" ????????????android:orientation="vertical"?> ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????????<com.zhf.android_viewflow.ViewFlow ????????????????android:id="@+id/viewflow" ????????????????android:layout_width="fill_parent" ????????????????android:layout_height="fill_parent" ????????????????app:sidebuffer="3"/> ????????</RelativeLayout> ????????<com.zhf.android_viewflow.CircleFlowIndicator ????????????android:id="@+id/viewflowindic" ????????????android:layout_width="wrap_content" ????????????android:layout_height="140dp" ????????????android:layout_alignParentBottom="true" ????????????android:layout_gravity="center_horizontal" ????????????app:fadeOut="0" ????????????app:inactiveType="fill" ????????????android:paddingTop="125dp"?/> ????????<!--圓點(diǎn)指示器還支持activeColor、inactiveColor、activeType(填充或描邊)、 ????????????inactiveType(填充或描邊)、 ????????????fadeOut(設(shè)置圓點(diǎn)自動(dòng)隱藏的秒數(shù),若為0則不會(huì)自動(dòng)隱藏)、 ????????????radius(圓點(diǎn)的半徑)等。 ????????--> ????</FrameLayout> </LinearLayout>

注:這里需要強(qiáng)調(diào)一下,因?yàn)槭褂玫谌降膸?kù)組件,所以要在使用之前引入:

xmlns:app="http://schemas.android.com/apk/res/com.zhf.android_viewflow"


main_item.xml

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 <?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????android:layout_width="fill_parent" ????android:layout_height="fill_parent" ????android:isScrollContainer="true" ????android:scrollbarAlwaysDrawVerticalTrack="true" ????android:scrollbars="vertical"?> <!-- isScrollContainer?? 設(shè)置當(dāng)前View為滾動(dòng)容器 ????scrollbarAlwaysDrawVerticalTrack????? 設(shè)置是否始終顯示垂直滾動(dòng)條--> ????<ImageView ????????android:id="@+id/imgView" ????????android:layout_width="fill_parent" ????????android:layout_height="wrap_content" ????????android:layout_gravity="center_vertical|center_horizontal"?> ????</ImageView> </LinearLayout>

MainActivity類

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 package?com.zhf.android_viewflow; import?android.os.Bundle; import?android.app.Activity; import?android.content.res.Configuration; public?class?MainActivity?extends?Activity { ????private?ViewFlow viewFlow; ????private?CircleFlowIndicator indic;??//頁(yè)表指示器 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????@Override ????protected?void?onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.activity_main); ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????viewFlow = (ViewFlow) findViewById(R.id.viewflow); ????????//為其綁定適配器 ????????viewFlow.setAdapter(new?ImageAdapter(this),5);?//初始位置5 ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????indic = (CircleFlowIndicator) findViewById(R.id.viewflowindic); ????????//為viewFlow綁定頁(yè)表指示器 ????????viewFlow.setFlowIndicator(indic); ????} ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????/**處理轉(zhuǎn)屏操作**/ ????@Override ????public?void?onConfigurationChanged(Configuration newConfig) { ????????super.onConfigurationChanged(newConfig); ????????viewFlow.onConfigurationChanged(newConfig); ????} }


這里還有一個(gè)圖片適配器:ImageAdapter

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 package?com.zhf.android_viewflow; import?com.cjf.ui.R; import?android.content.Context; import?android.view.LayoutInflater; import?android.view.View; import?android.view.ViewGroup; import?android.widget.BaseAdapter; import?android.widget.ImageView; public?class?ImageAdapter?extends?BaseAdapter{ ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????private?LayoutInflater mInflater; ????//圖片資源的id ????private?static?final?int[] ids = { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d, ????????R.drawable.e, R.drawable.f, R.drawable.g, R.drawable.h}; ????public?ImageAdapter(Context context) { ????????this.mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); ????} ????@Override ????public?int?getCount() { ????????// TODO Auto-generated method stub ????????return?ids ==?null???0?:ids.length; ????} ????@Override ????public?Object?getItem(int?position) { ????????// TODO Auto-generated method stub ????????return?position; ????} ????@Override ????public?long getItemId(int?position) { ????????// TODO Auto-generated method stub ????????return?position; ????} ????@Override ????public?View getView(int?position, View convertView, ViewGroup parent) { ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ????????if?(convertView ==?null) { ????????????convertView = mInflater.inflate(R.layout.image_item,?null); ????????} ????????((ImageView) convertView.findViewById(R.id.imgView)).setImageResource(ids[position]); ????????return?convertView; ????} }


運(yùn)行一下吧!效果圖:

轉(zhuǎn)屏后?


恩,終于寫完了! 希望這篇博客能幫助到大家!好累~~

三個(gè)例子的源碼我已總結(jié)好(獨(dú)立的三個(gè)項(xiàng)目,壓縮在一個(gè)zip里了)

下載地址:http://down.51cto.com/data/976370

總結(jié)

以上是生活随笔為你收集整理的Android中三种超实用的滑屏方式汇总(ViewPager、ViewFlipper、ViewFlow)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

亚洲欧洲精品一区二区 | 三级黄色大片在线观看 | av短片在线观看 | 亚洲欧美少妇 | 五月综合婷 | 国产精品成人一区二区三区吃奶 | 黄色大片免费播放 | 国产精品免费一区二区三区在线观看 | 久久av在线播放 | 色激情在线 | 精品国产三级 | 欧美va天堂va视频va在线 | 波多野结衣在线观看一区二区三区 | 亚洲精品无 | 97成人在线| 国产a级免费 | 一区二区 不卡 | 日韩欧美精品在线观看 | 日韩欧美视频在线播放 | 日批在线看| 久久精品aaa | 日韩av黄| 日日干夜夜干 | 最新国产精品亚洲 | 911在线| 成人 亚洲 欧美 | 91亚色免费视频 | 91精品在线免费观看视频 | 国产免费一区二区三区最新 | 久久久久中文字幕 | 亚洲 欧美 综合 在线 精品 | 国产精品理论片 | 五月婷婷在线视频 | 在线观看黄色av | 97在线视频观看 | 国产精品久久久久免费a∨ 欧美一级性生活片 | 97福利在线 | 久久草草热国产精品直播 | 国产精品欧美久久久久天天影视 | 在线免费视频你懂的 | 天堂va欧美va亚洲va老司机 | 国产精品大片在线观看 | 色狠狠干 | 黄色三级免费 | 国产在线久草 | 91成人免费| 亚洲天堂va| 成人黄色av网站 | 日日夜夜狠狠干 | 日韩视频在线不卡 | 在线观看国产成人av片 | 色综合色综合久久综合频道88 | 中文字幕人成一区 | 久久五月天综合 | 亚洲日韩欧美一区二区在线 | 国内精品美女在线观看 | 亚洲第二色 | 日韩视频一二三区 | av成人在线播放 | 日躁夜躁狠狠躁2001 | 日韩欧美网址 | 香蕉视频免费看 | 国产精品久久久久久久久久99 | 欧美日韩视频在线 | 人人爽爽人人 | 最近中文字幕视频完整版 | 成人午夜电影免费在线观看 | 欧美精品xxx | 青草视频免费观看 | 精品国产理论 | 国产视频一| 狠狠的操你 | 久草免费在线视频观看 | 91免费看黄色 | 成人午夜性影院 | 亚洲无人区小视频 | 国产96视频| 日韩精品一区二区三区高清免费 | 免费福利在线视频 | 国产在线91在线电影 | 日本久久电影 | 国产精品一区二区三区视频免费 | 公与妇乱理三级xxx 在线观看视频在线观看 | 在线中文字幕一区二区 | 丁香婷婷综合五月 | 国产精品久久久久久久久费观看 | 丁香5月婷婷久久 | 欧美日韩免费看 | 91亚洲精品久久久久图片蜜桃 | 久久久久久美女 | 中文字幕 欧美性 | 免费观看全黄做爰大片国产 | 日韩精品专区在线影院重磅 | 91激情 | 在线之家免费在线观看电影 | 亚洲国产成人在线播放 | 亚洲第一区在线播放 | 亚洲精品看片 | 日日夜夜网站 | 久久香蕉国产精品麻豆粉嫩av | 久久久久国产精品视频 | 国产亚洲精品久久久久久久久久 | 天天综合久久 | 人人爱人人舔 | 久久激情婷婷 | 天天插综合网 | 日韩v在线 | 成人午夜电影免费在线观看 | 五月色婷 | 日本巨乳在线 | 日韩伦理片hd | 97成人在线视频 | 又黄又爽又无遮挡的视频 | 热久久视久久精品18亚洲精品 | 91麻豆精品国产午夜天堂 | 久久免费电影网 | 国产小视频在线免费观看视频 | 在线观看av麻豆 | 成人国产精品一区 | 丁香av在线 | 久久久久久久综合色一本 | 日本少妇久久久 | 日韩三级一区 | 4438全国亚洲精品观看视频 | 亚洲不卡123 | 国产在线观看你懂的 | 夜夜高潮夜夜爽国产伦精品 | 久久综合九色综合97婷婷女人 | 免费观看的黄色 | 在线亚洲欧美视频 | 日韩精品中文字幕在线不卡尤物 | 婷婷av网| 色全色在线资源网 | 91桃色免费视频 | 伊人网av| 久久精品国产第一区二区三区 | 欧美性高跟鞋xxxxhd | 亚洲精品国产成人 | 亚洲国产高清在线观看视频 | 久久久久久精 | 国产精品99久久久久久久久 | 欧美成人91 | 在线观看视频福利 | 天天综合网天天综合色 | 日日夜夜婷婷 | 日韩丝袜在线观看 | 中文字幕区 | 国内丰满少妇猛烈精品播 | 色亚洲网 | 六月丁香综合 | 国产99视频在线观看 | 综合天天| 婷婷综合在线 | 精品美女久久 | 91色视频| 韩日精品在线 | 久草网免费 | 99在线热播精品免费 | 久久超碰网 | 久久久久久中文字幕 | 久久中文字幕视频 | www.av在线.com| 中文字幕在线看视频 | 欧美在线资源 | 亚洲国产精品一区二区尤物区 | 亚洲精品h | 日韩超碰在线 | 成年人免费av| 麻豆视频在线 | 久久综合影视 | av免费网站在线观看 | 色吊丝在线永久观看最新版本 | 国产中文视频 | 国产精品久久久久久久久久久免费 | 日精品在线观看 | 国产日产精品久久久久快鸭 | 在线观看一区 | 欧美福利片在线观看 | 日韩欧美一区二区三区在线观看 | 成人高清av在线 | 国产黄色美女 | 国产网站av | www一起操 | 久久一视频 | 一级片色播影院 | 日韩在线观看视频在线 | 亚洲在线高清 | 天天爽天天爽天天爽 | 国产不卡一二三区 | 91亚州| 日韩xxxx视频 | 五月婷婷丁香六月 | 欧美日本一二三 | 91大神dom调教在线观看 | 亚洲精品欧美精品 | 日韩高清三区 | 在线婷婷| 免费成人av电影 | 97国产超碰 | 黄色午夜| 国产九色视频在线观看 | 97人人模人人爽人人喊中文字 | 麻豆av一区二区三区在线观看 | 欧美日高清视频 | 久精品一区 | 国产日韩欧美精品在线观看 | 五月天久久精品 | 天海冀一区二区三区 | 成人app在线播放 | 黄色av免费 | 国产视频不卡一区 | 五月精品| av黄色成人 | 香蕉视频在线网站 | 欧美日韩国产mv | 成人a级网站 | 97超碰香蕉 | 国产美女网站视频 | 久久爱资源网 | 成人蜜桃视频 | 成人毛片100免费观看 | 国产美女搞久久 | 999视频在线播放 | 青草视频在线 | 国产精品久久久久永久免费看 | www免费在线观看 | 美女露久久 | 国产成人精品一区二区在线观看 | 国产专区日韩专区 | 国产综合视频在线观看 | 欧美极品xxxxx | 久久久久国产精品一区二区 | 丁香六月五月婷婷 | 亚洲国产手机在线 | 国产高清在线a视频大全 | 亚洲精品在线免费播放 | 天天草综合| 五月开心综合 | 中文字幕日韩电影 | 国产精品久久久久久久久久久久久 | 久热香蕉视频 | 欧美日韩中 | 91成人蝌蚪 | 91传媒免费观看 | 国色天香永久免费 | 欧美日韩在线视频一区二区 | 丁香 久久 综合 | 久久久999免费视频 日韩网站在线 | 少妇bbbb | 国产专区在线视频 | 国产人成看黄久久久久久久久 | 久久综合久久综合这里只有精品 | 精品99视频| 一色屋精品视频在线观看 | 国产精在线 | 色婷婷综合视频在线观看 | 日本久久久亚洲精品 | 久久久久北条麻妃免费看 | 在线观看久久久久久 | 国产精品一区二区三区免费看 | 中文字幕免费观看全部电影 | 天天操人人干 | 欧美日韩高清在线观看 | 亚洲精品视频免费在线 | 国产精品久久久久久久久久白浆 | 亚洲精品99久久久久久 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 欧美资源在线观看 | 黄色av成人在线 | 日韩欧美一区二区三区视频 | 精品国产视频在线 | av色综合网 | 国语麻豆 | 国内精品小视频 | 在线观看中文字幕网站 | 天天操狠狠操夜夜操 | 天天射天天干天天爽 | 色婷婷九月 | 精品国产乱码一区二 | 久久精彩| 欧美一级片播放 | 久久成人视屏 | 97超碰在 | 美女久久久久久久久久 | 亚洲第一区在线观看 | 国产美女视频一区 | 亚洲精品国产欧美在线观看 | 亚洲视屏| 久久久久久福利 | 777久久久 | 国产精品精品久久久 | 久久天堂亚洲 | 麻豆系列在线观看 | 在线天堂中文www视软件 | 91日韩精品视频 | 综合网在线视频 | 国产伦精品一区二区三区四区视频 | 69国产盗摄一区二区三区五区 | 在线播放日韩av | 日韩激情小视频 | 久久久久久美女 | 91中文字幕在线播放 | 久草在线免费资源 | 深爱开心激情 | 日本久久精品视频 | 国产精品99久久免费观看 | 国产成人一区二区精品非洲 | 婷婷久草 | 亚洲精品 在线视频 | 中文资源在线观看 | 日韩高清不卡一区二区三区 | 欧美a性 | 久久久久久久久久久久久久免费看 | 色综合五月天 | 免费男女羞羞的视频网站中文字幕 | 97在线视频免费看 | 日韩手机在线 | 国产xvideos免费视频播放 | 午夜色性片 | 玖玖国产精品视频 | 99c视频高清免费观看 | 中文字幕精品一区久久久久 | 五月宗合网 | 日韩天堂在线观看 | 亚洲在线色| 国产精品久久电影观看 | 黄色亚洲片 | 国产在线小视频 | 久久性生活片 | 国产日产精品久久久久快鸭 | 中文字幕国内精品 | 婷婷丁香综合 | 91九色视频| 国产精品久久片 | 欧美热久久 | 精品免费久久久久 | 国产一级片免费观看 | 五月婷婷色播 | 激情婷婷综合 | 国产一区在线视频观看 | 欧美日性视频 | 日本在线观看一区二区 | 日韩一区二区三区在线看 | 成人免费观看视频网站 | 国产黄色av网站 | 美女免费视频一区二区 | 国产女教师精品久久av | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 国产91国语对白在线 | 一区二区三区电影大全 | 亚洲在线激情 | 成人中文字幕在线观看 | 日韩三级视频在线看 | 五月开心婷婷网 | 亚洲 欧美 变态 国产 另类 | www黄免费 | 成人影视免费 | 亚洲黄色网络 | 中文在线a天堂 | av免费高清观看 | 麻豆视频在线观看 | 天堂av在线免费 | 青青色影院 | 韩日精品在线 | 在线免费av网 | 色www精品视频在线观看 | 久久国产精品影视 | 日韩精品在线免费播放 | 97影视| 国产精品久久久久久久久久直播 | 99久久国产免费免费 | 日韩欧美精品一区二区三区经典 | 国产精品免费观看在线 | 日韩av免费在线看 | 香蕉97视频观看在线观看 | 日韩电影在线视频 | 亚洲自拍偷拍色图 | 人人爱爱人人 | 国产在线97 | 高清久久久久久 | 成人久久影院 | 欧美国产日韩一区二区 | 欧美在线你懂的 | 91视频免费网站 | 夜夜躁日日躁狠狠久久88av | 99 视频 高清 | 欧美在线视频日韩 | 免费av在线网| 99久久99久久精品国产片果冰 | 久久久久观看 | 日本mv大片欧洲mv大片 | 国内精品久久久久影院男同志 | 视频在线播放国产 | 三级黄免费看 | 制服丝袜欧美 | 亚洲精品视频免费在线 | 国产精品国产三级国产aⅴ9色 | 国产精品久久久久久婷婷天堂 | 国内精品国产三级国产aⅴ久 | 国产免费叼嘿网站免费 | 国产最新在线 | 国产日产在线观看 | 欧美999| 久久久国产精品电影 | 青青色影院 | 欧美日韩激情视频8区 | 人人舔人人爱 | 欧美日韩p片 | 久久精品视频4 | 永久免费精品视频网站 | 日韩欧美电影网 | 亚洲高清久久久 | 欧美一级性生活 | 在线观看麻豆av | 在线不卡中文字幕播放 | 欧美日韩国产综合网 | 亚洲欧美日韩一级 | 国产成人精品日本亚洲999 | 国产美女网站在线观看 | 免费日韩高清 | 中文字幕日韩免费视频 | 黄色成人av在线 | 四虎最新域名 | 国产人成看黄久久久久久久久 | 亚洲国产精品电影 | 中文字幕一区二区三区在线观看 | av不卡免费看| 久久艹免费 | 成人免费在线观看av | 日本福利视频在线 | 日日夜夜精品 | 欧美日韩国产一二 | 91香蕉视频 | 激情五月亚洲 | 欧美在线观看视频一区二区 | 国产精品一区二区美女视频免费看 | 国产免费叼嘿网站免费 | 96av在线视频 | 狠狠色香婷婷久久亚洲精品 | 99热国内精品 | 美女视频黄色免费 | 99久久国产免费免费 | 九九视频一区 | 97精品国产97久久久久久 | 四虎国产精品免费 | 黄色av高清 | 中文字幕超清在线免费 | 欧美日韩国产一区二区三区 | 六月丁香激情综合色啪小说 | 在线91精品 | 五月婷婷在线观看视频 | 免费在线观看国产黄 | 亚洲最大av网 | 国产一区二区在线播放视频 | 丁香激情五月 | 97精品国产91久久久久久 | 91av视频在线播放 | 日韩久久精品一区二区 | 九色视频自拍 | 深爱激情开心 | 欧美成人日韩 | 中文字幕一区二区三区久久蜜桃 | 久久经典视频 | 视频二区在线 | 午夜国产在线观看 | 欧美日韩高清不卡 | 一区二区三区日韩精品 | 四虎5151久久欧美毛片 | 国产成人精品一区二区三区福利 | 国产r级在线观看 | 国产 精品 资源 | 成人小视频在线 | 国产成人av免费在线观看 | 黄色网址a | 日韩成人高清在线 | 福利视频区 | 亚洲免费高清视频 | 国产视频 久久久 | 久久免费国产视频 | 日日干,天天干 | 西西4444www大胆无视频 | 亚洲精品99久久久久中文字幕 | 亚洲妇女av | 超碰在线人人爱 | 亚洲精品在线观看不卡 | 999免费视频 | 一级片视频在线 | 日韩欧美成 | 天天爱天天干天天爽 | 国产亚洲永久域名 | 超碰com| 国产不卡在线观看视频 | 成人宗合网 | 韩国中文三级 | 久久久精选| 国产精品久久久久久一区二区 | 国产在线视频一区 | 91在线免费播放 | 中文字幕九九 | aaawww| 天天操网 | 伊人天堂网 | 色91在线 | 在线观看韩日电影免费 | 91爱爱免费观看 | 午夜精品一区二区三区可下载 | 91夫妻视频| 日韩在线播放视频 | 国产破处视频在线播放 | 日本精品久久久久久 | 免费一级日韩欧美性大片 | 99视频精品全部免费 在线 | 国产精品岛国久久久久久久久红粉 | 91看片在线 | 午夜视频在线观看网站 | 欧美日韩在线视频免费 | 黄污网站在线观看 | 久久国产精品电影 | av女优中文字幕在线观看 | 狠狠躁18三区二区一区ai明星 | 久草视频在线免费看 | 午夜丰满寂寞少妇精品 | 日本精品一区二区三区在线播放视频 | 2024av在线播放| 精品久久91 | 日韩免费在线观看 | 91av大全| 高潮久久久 | 亚洲精品电影在线 | 亚洲精品久久在线 | 日韩伦理片一区二区三区 | 天天色播| 精品久久久久久久久久久久 | 欧美激情视频久久 | 日本精品在线看 | 精品国产乱码久久久久久1区2匹 | 国产一区二区高清不卡 | 国产涩涩网站 | 色福利网 | 国产精品18久久久久久久网站 | a天堂最新版中文在线地址 久久99久久精品国产 | 一区二区三区动漫 | 亚洲综合在线发布 | 美女网色 | 夜夜夜夜夜夜操 | av不卡免费看 | 久久伊99综合婷婷久久伊 | 日韩理论片在线观看 | 成人在线视频一区 | 一区精品在线 | 久久免费国产精品1 | 在线观看一区二区视频 | 欧美视频在线观看免费网址 | 午夜国产成人 | 国产专区精品视频 | 国产精品成人在线观看 | 精品中文字幕视频 | 中文字幕视频在线播放 | 久久久久欠精品国产毛片国产毛生 | 国产老妇av | 91九色国产蝌蚪 | www.在线看片.com | 少妇性色午夜淫片aaaze | 96精品在线 | 午夜黄色大片 | 亚洲欧洲精品一区二区精品久久久 | 摸阴视频 | 国产一级二级av | 麻豆一精品传二传媒短视频 | 五月天激情综合网 | 91九色蝌蚪视频在线 | 精品一区二区三区四区在线 | 91麻豆精品国产自产在线游戏 | 福利一区在线视频 | 久久国产精品99久久久久久进口 | 国产999精品久久久影片官网 | 国产一级视频在线免费观看 | 999久久久久久久久 69av视频在线观看 | 亚一亚二国产专区 | 婷婷久久亚洲 | 色婷婷av国产精品 | 亚洲国产精品99久久久久久久久 | av电影av在线| 99视频精品 | 一区二区伦理 | 亚洲少妇久久 | 久久精品看片 | 奇米影视8888在线观看大全免费 | 国产精品欧美久久久久三级 | av中文字幕在线观看网站 | 91av在线免费观看 | 成人网页在线免费观看 | 国产在线观看99 | 欧美午夜精品久久久久 | 九九九热精品 | 精品视频在线看 | 色www.| 久久久福利影院 | 国产原创中文在线 | 免费观看91视频 | 久久新| 天天要夜夜操 | 国产精品久久久久久久婷婷 | 久久免费黄色大片 | 黄色a级片在线观看 | 亚洲高清久久久 | 色综合久久综合中文综合网 | 国产精品区免费视频 | 麻豆视频免费观看 | 97超碰中文字幕 | 国产精品扒开做爽爽的视频 | 亚洲欧美日韩中文在线 | 96视频在线 | 黄色片网站大全 | 在线观看免费一级片 | 中文字幕日韩高清 | 免费看麻豆| 在线观看免费国产小视频 | 久久久久国产精品午夜一区 | 99久久精品午夜一区二区小说 | 91亚洲精品乱码久久久久久蜜桃 | 91av99| 亚洲国产精品va在线看 | 免费观看一区二区三区视频 | 欧美一级黄大片 | 日韩精品免费在线视频 | 99久久综合精品五月天 | 国产精品乱码久久久久 | 国产亚洲精品精品精品 | 99久久精品久久亚洲精品 | 日韩av视屏 | 人人要人人澡人人爽人人dvd | 伊人宗合网 | 久久视频免费在线 | 亚洲一级特黄 | 99国产免费网址 | 精品久久久久久国产 | 日韩精品一区二区三区第95 | 日韩久久精品一区二区三区 | 亚洲精品电影在线 | 久久,天天综合 | 久久99久久99精品免费看小说 | 黄色成人在线 | 日本精品视频一区 | 射射射av | 伊人天天色| 一级黄色在线视频 | 波多野结衣动态图 | 一区二区精品国产 | 91激情视频在线播放 | 国产午夜激情视频 | 天天插综合 | 精品99久久久久久 | 456免费视频 | www日日夜夜| www看片网站 | 韩日精品在线 | 亚洲婷婷在线视频 | 91最新网址| 深爱婷婷久久综合 | 国产免费激情久久 | 欧美激情精品久久久久 | av片免费播放 | 中文字幕高清 | 综合久久久久久久久 | 欧美成人va| 成人在线播放视频 | 亚洲一区视频在线播放 | 日韩高清dvd | 激情综合网天天干 | 久久成人国产 | 久久精品视频网址 | 精品一区在线 | 免费三及片 | 综合网天天射 | 亚洲一区 影院 | 91在线网址 | 亚洲视频在线观看网站 | 欧美另类v | 日韩女同一区二区三区在线观看 | 欧美日韩高清在线观看 | 中文字幕在线观看你懂的 | 欧美一级久久久 | 热精品| 免费看国产一级片 | 国产婷婷一区二区 | 日韩三级视频在线观看 | 国产精品美女在线观看 | 五月天激情综合 | 久久一区二区三区国产精品 | 免费色视频网址 | www.777奇米| 天天·日日日干 | 97成人在线 | 国产精品mv在线观看 | 日韩在线观看电影 | 狠狠色丁香婷婷综合基地 | 欧美精品久久久久久久久老牛影院 | 国产生活一级片 | 久久综合亚洲鲁鲁五月久久 | 蜜臀aⅴ国产精品久久久国产 | 国产高清中文字幕 | 国产一级片视频 | 碰超在线 | a在线观看视频 | 欧美专区日韩专区 | 亚洲国产欧洲综合997久久, | 91视频免费播放 | a级片久久久 | 亚洲综合精品在线 | 国产精久久久 | 麻豆一区二区 | 国产精品人成电影在线观看 | 激情在线免费视频 | 中文字幕在线一二 | 亚洲精品视频在线免费播放 | 深夜免费福利在线 | 欧美色图亚洲图片 | 99久久婷婷国产综合精品 | 中文字幕中文字幕在线中文字幕三区 | 日本丶国产丶欧美色综合 | 青春草视频 | 91av在线不卡 | 久久黄色小说视频 | 成片免费观看视频大全 | 欧美日韩一区二区三区视频 | 国产亚洲精品美女久久 | 久久99视频免费观看 | av五月婷婷 | 在线电影a| 日韩丝袜 | 日韩欧美一区二区三区在线观看 | 国产日产欧美在线观看 | 免费视频资源 | 麻花天美星空视频 | 精品久久久久久一区二区里番 | a视频免费在线观看 | 婷婷色视频| 久久久久国产成人免费精品免费 | 国产 日韩 在线 亚洲 字幕 中文 | 国产专区日韩专区 | 美女免费黄视频网站 | 超碰个人在线 | 欧美日韩国产页 | 在线观看免费国产小视频 | 黄色aaa毛片 | 日韩肉感妇bbwbbwbbw | 欧美少妇xxx | 日韩美女免费线视频 | 免费看黄在线观看 | 日韩精品久久中文字幕 | 在线免费观看国产精品 | 2022中文字幕在线观看 | 美女激情影院 | 欧美色插 | 中文字幕乱在线伦视频中文字幕乱码在线 | 亚洲女人天堂成人av在线 | 美女av免费看 | 91中文字幕在线 | 国产成人精品aaa | 成人毛片在线观看视频 | 亚洲va欧洲va国产va不卡 | 99视频在线观看免费 | 中国一级片在线观看 | 在线观看国产福利片 | 国产精品黑丝在线观看 | 亚洲女裸体 | 色婷av | 日韩在线观看一区二区三区 | 青春草国产视频 | 婷婷久久综合九色综合 | 在线影院 国内精品 | 国产视频首页 | 97av在线| 97在线精品 | 黄色美女免费网站 | 精品国产成人av在线免 | 国产色爽| 日韩色在线 | 日韩久久在线 | 97视频免费看 | 综合国产在线 | 久久久久久高潮国产精品视 | 男女激情网址 | 在线播放91 | 欧美日韩视频网站 | 免费观看www视频 | 国产精品欧美日韩在线观看 | 波多野结衣精品在线 | 夜夜躁狠狠躁 | 激情欧美xxxx | 久久精品最新 | www.亚洲精品在线 | 国产精品久久久久久久久大全 | 久久免费激情视频 | 91粉色视频 | www.91av在线 | 免费福利小视频 | 亚洲激情六月 | 日本xxxx.com| 久久免费观看视频 | 久久久久一区 | 久久亚洲国产精品 | 999成人精品 | 成人av在线影视 | 欧美孕妇视频 | av中文字幕免费在线观看 | 久久情网 | 天天av综合网 | 天天草天天草 | 欧美精品久久久久 | 久久久久久久久精 | 高清视频一区 | 日韩av一卡二卡三卡 | 99久久免费看| av怡红院 | 久久夜色精品国产欧美一区麻豆 | 成人av在线亚洲 | 91视频com| 亚洲精品99久久久久中文字幕 | av电影在线不卡 | 国产亚洲精品免费 | 中文字幕精品一区二区精品 | 玖玖色在线观看 | 韩国在线视频一区 | 丰满少妇在线观看网站 | 亚洲欧洲av在线 | 综合激情 | 欧美一区二视频在线免费观看 | avwww在线观看| 午夜国产福利在线 | 日本护士三级少妇三级999 | 欧美日韩高清在线 | 在线最新av | 亚洲自拍偷拍色图 | 久久观看免费视频 | 国产视频一区二区在线 | 亚洲在线网址 | 992tv人人网tv亚洲精品 | 亚洲视频,欧洲视频 | 97精品超碰一区二区三区 | 日韩免费不卡视频 | 国产成人精品综合 | 国产无限资源在线观看 | 免费在线观看污网站 | 制服丝袜亚洲 | 国产美女精品视频免费观看 | 97视频网站 | 欧美大片www | av线上免费观看 | 亚洲精品视频免费 | 国产日韩精品一区二区三区在线 | 色婷婷激情四射 | 视频国产在线观看18 | 日韩色在线观看 | 精品久久久久久一区二区里番 | 久久免费国产 | 久久久久久久久久久免费av | 日韩精品首页 | 日p在线观看 | 激情文学丁香 | 日韩精品一区二区免费 | 成人在线观看日韩 | 伊人资源视频在线 | 久久国产精品二国产精品中国洋人 | 999免费视频 | 国产国语在线 | 色无五月 | 久久精品播放 | 亚洲aⅴ一区二区三区 | 国产日产精品久久久久快鸭 | 黄色成年 | 久久精品波多野结衣 | 91在线精品一区二区 | 国产精品久久久久久久久久久久午 | 日韩欧美一区二区在线观看 | 黄色在线观看污 | 亚洲精品一区二区久 | 日韩欧美一区二区在线 | 久久国产精品偷 | 中文av在线播放 | 黄在线免费观看 | 91人人在线| 国产成人在线观看免费 | 中文字幕av一区二区三区四区 | 91热这里只有精品 | 国产午夜精品免费一区二区三区视频 | 九九热视频在线播放 | 黄色成人影视 | 日韩精品电影在线播放 | 国产成人精品免高潮在线观看 | 视频一区在线免费观看 | 久久精品久久久久久久 | 婷婷播播网 | 综合网天天射 | 视频在线播放国产 | 色综合天天综合网国产成人网 | 欧美激情精品久久 | 欧美激情综合五月色丁香 | 91豆麻精品91久久久久久 | 香蕉视频18 | 亚洲国产高清在线 | 日韩中文字幕免费视频 | 在线观看中文字幕av | 精品在线视频一区二区三区 | 亚洲精品tv | 五月婷在线视频 | 日韩有码欧美 | 高清av免费看 | 超碰人人草人人 | 日韩丝袜在线观看 | 天天干天天做天天操 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 国产精品免费视频观看 | 在线 成人 | 亚洲理论电影网 | 国产高清黄| 精品美女在线视频 | 国产涩涩在线观看 | 国产精品综合av一区二区国产馆 | 日本激情视频中文字幕 | 手机在线看永久av片免费 | 国产裸体视频bbbbb | 亚洲精品字幕在线观看 | 一级黄色在线免费观看 | 欧美日韩视频在线观看一区二区 | 色综合久久中文字幕综合网 | 欧美日韩一区二区三区在线免费观看 | 国产精品视频全国免费观看 | 久久这里 | 在线免费观看视频一区二区三区 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 国产亚洲精品美女久久 | 91精品欧美一区二区三区 | 成人性生活大片 | 日本99精品 | 激情综合网婷婷 | 日韩av一区二区在线播放 | 色婷婷亚洲婷婷 | 久久精品爱爱视频 | 不卡电影免费在线播放一区 | 亚洲视频一级 | 天天色天天综合 | 9ⅰ精品久久久久久久久中文字幕 | www.97色.com| 中文字幕免费观看 | 久久怡红院 | 天天搞天天干天天色 | 99久久超碰中文字幕伊人 | 国产精品久久久久久999 | 久久女教师 | 欧美精品久久久久久久久久 | 超碰久热 | 综合网婷婷 | 在线观看国产日韩欧美 | 黄色日本免费 | 久射网| 东方av免费在线观看 | 亚洲精品久久久久www | 久久激情小视频 | 九七在线视频 | 激情五月婷婷综合网 | 久久久久久毛片精品免费不卡 | 伊人久久av | 国产理伦在线 | 五月婷婷av在线 | 国产精品久久在线 | 久草在线网址 | 日韩二区精品 | 色中射 | 97视频在线观看成人 | 免费裸体视频网 | 99久久久久久久久久 | 人人爽人人乐 | 久久天天综合网 | 久久精品九色 | 99国内精品| 亚洲精品一区二区精华 | 在线国产片 | 欧美视频在线二区 | 激情视频网页 | 国产视频亚洲精品 | 九九热视频在线播放 | 中文av免费 | 亚洲一级片免费观看 | 久久蜜臀一区二区三区av | 日韩三级一区 | 一级黄色免费 | 69国产成人综合久久精品欧美 | 97超碰在线久草超碰在线观看 | av蜜桃在线 | 国产在线一线 | 欧美福利久久 | 操操综合网 | 中文字幕资源网 国产 | 中文字幕黄色 | av在线亚洲天堂 | 黄网站色 |