如果您想了解[技术博客]使用PanResponder实现响应左右滑动手势和左右滑动效果的知识,那么本篇文章将是您的不二之选。我们将深入剖析[技术博客]使用PanResponder实现响应左右滑动手势的
如果您想了解[技术博客]使用PanResponder实现响应左右滑动手势和左右滑动效果的知识,那么本篇文章将是您的不二之选。我们将深入剖析[技术博客]使用PanResponder实现响应左右滑动手势的各个方面,并为您解答左右滑动效果的疑在这篇文章中,我们将为您介绍[技术博客]使用PanResponder实现响应左右滑动手势的相关知识,同时也会详细的解释左右滑动效果的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- [技术博客]使用PanResponder实现响应左右滑动手势(左右滑动效果)
- Android GestureDetector实现手势滑动效果
- android viewflipper实现左右滑动切换显示图片
- Android ViewPager2 可垂直左右滑动使用【java】
- Android ViewPager实现左右滑动的实例
[技术博客]使用PanResponder实现响应左右滑动手势(左右滑动效果)
在实现用户左右滑动完成不同操作时,使用react-native的官方API——PanResponder响应用户手势操作。
PanResponder介绍
PanResponder中文文档
PanResponder
类可以将多点触摸操作协调成一个手势。它使得一个单点触摸可以接受更多的触摸操作,也可以用于识别简单的多点触摸手势。
默认情况下PanResponder
会通过InteractionManager
来阻止长时间运行的 JS 事件打断当前的手势活动。
它提供了一个对触摸响应系统响应器的可预测的包装。对于每一个处理函数,它在原生事件之外提供了一个新的gestureState
对象:
onPanResponderMove: (event, gestureState) => {}
基本用法
componentWillMount: function() {
this._panResponder = PanResponder.create({
// 要求成为响应者:
onStartShouldSetPanResponder: (evt, gestureState) => true,
onStartShouldSetPanResponderCapture: (evt, gestureState) => true,
onMoveShouldSetPanResponder: (evt, gestureState) => true,
onMoveShouldSetPanResponderCapture: (evt, gestureState) => true,
onPanResponderGrant: (evt, gestureState) => {
// 开始手势操作。给用户一些视觉反馈,让他们知道发生了什么事情!
// gestureState.{x,y} 现在会被设置为0
},
onPanResponderMove: (evt, gestureState) => {
// 最近一次的移动距离为gestureState.move{X,Y}
// 从成为响应者开始时的累计手势移动距离为gestureState.d{x,y}
},
onPanResponderTerminationRequest: (evt, gestureState) => true,
onPanResponderRelease: (evt, gestureState) => {
// 用户放开了所有的触摸点,且此时视图已经成为了响应者。
// 一般来说这意味着一个手势操作已经成功完成。
},
onPanResponderTerminate: (evt, gestureState) => {
// 另一个组件已经成为了新的响应者,所以当前手势将被取消。
},
onShouldBlockNativeResponder: (evt, gestureState) => {
// 返回一个布尔值,决定当前组件是否应该阻止原生组件成为JS响应者
// 默认返回true。目前暂时只支持android。
return true;
},
});
},
render: function() {
return (
<View {...this._panResponder.panHandlers} />
);
},
这里仅介绍项目中使用到的两个属性,onMoveShouldSetPanResponder
、onPanResponderRelease
。
- onMoveShouldSetPanResponder:移动时根据此属性冒泡询问本元素是否获得手势权
- onPanResponderRelease:用户放开所有触摸点且本元素已成为响应者时将执行的函数
一个gestureState
对象有如下的字段:
stateID
- 触摸状态的 ID。在屏幕上有至少一个触摸点的情况下,这个 ID 会一直有效。moveX
- 最近一次移动时的屏幕横坐标moveY
- 最近一次移动时的屏幕纵坐标x0
- 当响应器产生时的屏幕坐标y0
- 当响应器产生时的屏幕坐标dx
- 从触摸操作开始时的累计横向路程dy
- 从触摸操作开始时的累计纵向路程vx
- 当前的横向移动速度vy
- 当前的纵向移动速度numberActiveTouches
- 当前在屏幕上的有效触摸点的数量
在项目中的使用
/* 渲染一个收藏项数据 */
_renderItem = (item) => {
let item1 = item;
var Id = item1.item.key;
let _panResponder = PanResponder.create({
onMoveShouldSetPanResponder: (evt, gestureState) => {
/* 这里仅当用户滑动的距离较长才响应用户操作,考虑实际用户点击是手指的一片区域,而不是测试时的鼠标单击,实际使用时即使是单击也可能有一定的位移 */
if(gestureState.dx < -screenWidth*0.1 || gestureState.dx > screenWidth*0.1){
return true;
}
else{
return false;
}
},
onPanResponderRelease: (evt, gestureState)=>{
if(gestureState.dx < 0) {
/* 左滑删除该项收藏 */
this._onPressDelBookmarks(WzLinkId);
}
else{
/* 右滑编辑收藏 */
this._onPressEditBookmarks(WzLinkId);
}
},
});
return(
<View style={flatStylesWithAvatar.cell} {..._panResponder.panHandlers}>
<TouchableOpacity style = {flatStylesWithAvatar.listcontainer}
onPress={()=>console.log(''单击了该项'')}
>
具体内容
</TouchableOpacity>
</View>
)
};
这里对列表中的每一项都创建一个PanResponder对象,绑定不同的操作。
Android GestureDetector实现手势滑动效果
本文实例为大家分享了Android GestureDetector实现手势滑动的具体代码,供大家参考,具体内容如下
目标效果:
程序运行,手指在屏幕上从左往右或者从右往左滑动超过一定距离,就会吐司输出滑动方向和距离。
1.activity_main.xml页面放置一个ImageView控件。
activity_main.xml页面:
<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" tools:context=".MainActivity" > <ImageView android:id="@+id/ivShow" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/ic_launcher" /> </RelativeLayout>
2.MainActivity.java页面实现滑动方法。
MainActivity.java页面:
package com.example.gesturedetector; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.GestureDetector; import android.view.GestureDetector.SimpleOnGestureListener; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends Activity { private ImageView ivShow; private GestureDetector gestureDetector; class myGestureListener extends SimpleOnGestureListener{ @Override /*识别滑动,第一个参数为刚开始事件,第二个参数为结束事件*/ public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if(e1.getX()-e2.getX()>50){ Toast.makeText(MainActivity.this,"从右往左滑动"+(e1.getX()-e2.getX()),Toast.LENGTH_LONG).show(); }else if(e2.getX()-e1.getX()>50){ Toast.makeText(MainActivity.this,"从左往右滑动"+(e2.getX()-e1.getX()),Toast.LENGTH_LONG).show(); } return super.onFling(e1, e2, velocityX, velocityY); } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gestureDetector=new GestureDetector(MainActivity.this,new myGestureListener()); ivShow=(ImageView) findViewById(R.id.ivShow); ivShow.setLongClickable(true); //view必须设置为true,否则手势识别无法正确工作 ivShow.setOnTouchListener(new OnTouchListener() { /*可以捕获到触摸屏幕发生的Event事件*/ @Override public boolean onTouch(View arg0, MotionEvent event) { gestureDetector.onTouchEvent(event);//转发 return false; } }); } }
3.程序较简单,运行就可以显示目标效果了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
- Android GestureDetector用户手势检测实例讲解
- android使用gesturedetector手势识别示例分享
- Android GestureDetector手势滑动使用实例讲解
- Android手势识别器GestureDetector使用详解
- Android自定义viewgroup可滚动布局 GestureDetector手势监听(5)
- Android自定义GestureDetector实现手势ImageView
- Android编程使用GestureDetector实现简单手势监听与处理的方法
- Android触摸及手势操作GestureDetector
- andorid 使用手势监听器GestureDetector遇到的不响应问题
- Android如何使用GestureDetector进行手势检测详解
android viewflipper实现左右滑动切换显示图片
本文实例为大家分享了android viewflipper实现左右滑动切换显示图片的具体代码,供大家参考,具体内容如下
1.首先定义四个动画文件,表示当view切换的时候的显示效果
in_leftright.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-100%p" /> </set>
in_rightleft.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromXDelta="100%p" android:toXDelta="0" /> </set>
out_leftright.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromXDelta="0" android:toXDelta="100%p" /> </set>
out_rightleft.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <translate android:duration="500" android:fromXDelta="0" android:toXDelta="-100%p" /> </set>
2.在main.xml中添加ViewFlipper控件,里面放三个LinearLayout,表示3个view
<?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" > <ViewFlipper android:id="@+id/viewFlipper" android:layout_width="match_parent" android:layout_height="match_parent" > <!-- first page --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/a001" /> </LinearLayout> <!-- second page --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/a002" /> </LinearLayout> <!-- third page --> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:src="@drawable/a003" /> </LinearLayout> </ViewFlipper> </LinearLayout>
3.最后在activity里的onTouchEvent事件中,来判断是往哪个方向移动
package org.example.viewflipper; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.widget.ViewFlipper; public class ViewFlipperActivity extends Activity { private ViewFlipper viewFlipper = null; float startX; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // init widget viewFlipper = (ViewFlipper) findViewById(R.id.viewFlipper); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: startX = event.getX(); break; case MotionEvent.ACTION_UP: if (event.getX() > startX) {// flip to right viewFlipper.setInAnimation(this, R.anim.in_leftright); viewFlipper.setOutAnimation(this, R.anim.out_leftright); viewFlipper.showNext(); } else {// flip to left viewFlipper.setInAnimation(this, R.anim.in_rightleft); viewFlipper.setOutAnimation(this, R.anim.out_rightleft); viewFlipper.showPrevious(); } } return super.onTouchEvent(event); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
- Android实现界面左右滑动切换功能
- Android App中使用ViewPager+Fragment实现滑动切换效果
- Android开发之使用ViewPager实现图片左右滑动切换效果
- Android实现简单底部导航栏 Android仿微信滑动切换效果
- Android实现滑动屏幕切换图片
- Android编程实现ViewPager多页面滑动切换及动画效果的方法
- Android实现微信首页左右滑动切换效果
- android实现切换日期左右无限滑动效果
- Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
- Android Listview上下拉动刷新tab滑动切换功能
Android ViewPager2 可垂直左右滑动使用【java】
ViewPager2位于androidx包下,也就是它不像ViewPager一样被内置在系统源码中。因此,使用ViewPager2需要额外的添加依赖库。另外,android support中不包含ViewPager,也就是要使用ViewPager2必须迁移到androidx才可以。
添加依赖
dependencies { implementation "androidx.viewpager2:viewpager2:1.0.0" }
布局:
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="280dp" app:layout_constraintBottom_toTopOf="@+id/btn" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="切换" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="1.0" /> </androidx.constraintlayout.widget.ConstraintLayout>
适配器:
package com.loaderman.viewpage2; import android.graphics.Color; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; public class MyAdapter extends RecyclerView.Adapter<PagerViewHolder> { List<String> list= new ArrayList<>(); String[] colors = {"#FF00CC","#41F1E5","#8D41F1","#FF99CC"}; public MyAdapter() { list.add("1"); list.add("2"); list.add("3"); list.add("4"); } @NonNull @Override public PagerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_page, parent, false); return new PagerViewHolder(itemView); } @Override public void onBindViewHolder(@NonNull PagerViewHolder holder, int position) { holder.tv.setText(list.get(position)); holder.tv.setBackgroundColor(Color.parseColor(colors[position])); } @Override public int getItemCount() { return list.size(); } } class PagerViewHolder extends RecyclerView.ViewHolder{ public TextView tv; public PagerViewHolder(@NonNull View itemView) { super(itemView); tv=itemView.findViewById(R.id.tv_text); } }
item_page.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center"> <TextView android:id="@+id/tv_text" android:background="@color/colorPrimaryDark" android:layout_width="match_parent" android:layout_height="280dp" android:gravity="center" android:textColor="#ffffff" android:textSize="22sp" /> </LinearLayout>
FragmentStateAdapter
package com.loaderman.viewpage2; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.viewpager2.adapter.FragmentStateAdapter; public class MyFragmentStateAdapter extends FragmentStateAdapter{ public MyFragmentStateAdapter(@NonNull FragmentActivity fragmentActivity) { super(fragmentActivity); } @NonNull @Override public Fragment createFragment(int position) { return FragmentFactory.getFragment(position); } @Override public int getItemCount() { return 4; } }
页面缩放
package com.loaderman.viewpage2; import android.view.View; import androidx.annotation.NonNull; import androidx.viewpager2.widget.ViewPager2; //页面缩放 public class ScaleInTransformer implements ViewPager2.PageTransformer { final float DEFAULT_MIN_SCALE = 0.85f; final float DEFAULT_CENTER = 0.5f; final float mMinScale = DEFAULT_MIN_SCALE; @Override public void transformPage(@NonNull View view, float position) { view.setElevation(-Math.abs(position)); float pageWidth = view.getWidth(); float pageHeight = view.getHeight(); view.setPivotY((pageHeight / 2)); view.setPivotX ((pageWidth / 2)); if (position < -1) { view.setScaleX(mMinScale); view.setScaleY(mMinScale); view.setPivotX(pageWidth); } else if (position <= 1) { if (position < 0) { float scaleFactor = (1 + position) * (1 - mMinScale) + mMinScale; view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); view.setPivotX(pageWidth * (DEFAULT_CENTER + DEFAULT_CENTER * -position)); } else { float scaleFactor = (1 - position) * (1 - mMinScale) + mMinScale; view.setScaleX(scaleFactor); view.setScaleY(scaleFactor); view.setPivotX(pageWidth * ((1 - position) * DEFAULT_CENTER)); } } else { view.setPivotX(0f); view.setScaleX(mMinScale); view.setScaleY(mMinScale); } } }
主页面:
package com.loaderman.viewpage2; import androidx.appcompat.app.AppCompatActivity; import androidx.viewpager2.widget.CompositePageTransformer; import androidx.viewpager2.widget.MarginPageTransformer; import androidx.viewpager2.widget.ViewPager2; import android.os.Bundle; import android.view.View; import android.widget.Button; /* ViewPager2与ViewPager同是继承自ViewGrop,但是ViewPager2被声明成了final。 意味着我们不可能再像ViewPager一样通过继承来修改ViewPager2的代码。 FragmentStatePagerAdapter被FragmentStateAdapter 替代PagerAdapter被RecyclerView.Adapter替代addPagechangelistener被registerOnPageChangeCallback。 我们知道ViewPager的addPagechangelistener接收的是一个OnPagechangelistener的接口, 而这个接口中有三个方法,当想要监听页面变化时需要重写这三个方法。 而ViewPager2的registerOnPageChangeCallback方法接收的是一个叫OnPageChangeCallback的抽象类, 因此我们可以选择性的重写需要的方法即可。移除了setPargeMargin方法。 * */ public class MainActivity extends AppCompatActivity { private ViewPager2 viewPager2; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager2 = findViewById(R.id.view_pager); btn = findViewById(R.id.btn); // MyAdapter myAdapter = new MyAdapter(); //竖直滑动 // viewPager2.setorientation(ViewPager2.ORIENTATION_VERTICAL); // viewPager2.setAdapter(myAdapter); // 页面滑动事件监听 viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { super.onPageScrolled(position, positionOffset, positionOffsetPixels); System.out.println("onPageScrolled" + +position); } @Override public void onPageSelected(int position) { super.onPageSelected(position); System.out.println("onPageSelected " + position); } @Override public void onPageScrollStateChanged(int state) { super.onPageScrollStateChanged(state); System.out.println("onPageScrollStateChanged state-->" + +state); } }); // 设置页面间距 viewPager2.setPageTransformer(new MarginPageTransformer((int) getResources().getDimension(R.dimen.dp10))); //按钮点击可以模拟用户滑动 btn.setonClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //禁止ViewPager2的滑动 viewPager2.setUserInputEnabled(false); //拖拽,按钮点击可以模拟用户滑动 viewPager2.beginFakeDrag(); if (viewPager2.fakeDragBy(-310f)) viewPager2.endFakeDrag(); } }); // 设置页面切换动画 CompositePageTransformer compositePageTransformer = new CompositePageTransformer(); compositePageTransformer.addTransformer(new ScaleInTransformer()); compositePageTransformer.addTransformer(new MarginPageTransformer((int) getResources().getDimension(R.dimen.dp10))); viewPager2.setPageTransformer(compositePageTransformer); //ViewPager2与Fragment 结合使用 viewPager2.setAdapter(new MyFragmentStateAdapter(this)); viewPager2.setoffscreenPageLimit(3); } }
FragmentFactory
package com.loaderman.viewpage2; import androidx.fragment.app.Fragment; import java.util.HashMap; public class FragmentFactory { private static HashMap<Integer, Fragment> savedFragment = new HashMap<Integer, Fragment>(); public static Fragment getFragment(int position) { Fragment fragment = savedFragment.get(position); if (fragment == null) { switch (position) { case 0: fragment = new Home1Fragment(); break; case 1: fragment = new Home2Fragment(); break; case 2: fragment = new Home3Fragment(); break; case 3: fragment = new Home4Fragment(); break; } savedFragment.put(position, fragment); } return fragment; } }
package com.loaderman.viewpage2; import android.graphics.Color; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; public class Home1Fragment extends Fragment { @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { TextView tv = new TextView(getContext()); tv.setText("Home1Fragment"); tv.setBackgroundColor(Color.RED); return tv; } }
效果:
学习参考:https://juejin.im/post/5df4aabe6fb9a0161104c8eb 【kotlin学习参考】
Android ViewPager实现左右滑动的实例
Android ViewPager实现左右滑动的实例
多个标题以及标题下的每个View视图
<com.shizhefei.view.indicator.ScrollIndicatorView android:id="@+id/moretab_indicator" android:layout_width="match_parent" android:layout_height="45dp" /> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#f2f2f2" /> <android.support.v4.view.ViewPager android:id="@+id/moretab_viewPager" android:layout_width="match_parent" android:layout_height="match_parent" />
在build.gradle添加包:
//左右滑动布局框架 compile 'com.shizhefei:ViewPagerIndicator:1.1.4'
然后在代码中实现功能:
ScrollIndicatorView scrollIndicatorView; ViewPager viewPager; private String[] titles = {"在线申办","信用卡代换","信用卡取现","办卡进度"}; private IndicatorViewPager indicatorViewPager; private LayoutInflater inflate; private Context mContext; private void initViewPager() { // 默认字体是14 float unSelectSize = 14; // 滑动字体是14*1.2f float selectSize = unSelectSize; scrollIndicatorView.setonTransitionListener(new OnTransitionTextListener().setColor(0xFF1DA9FF,Color.GRAY).setSize(selectSize,unSelectSize)); scrollIndicatorView.setScrollBar(new ColorBar(mContext,0xFF1DA9FF,2)); viewPager.setoffscreenPageLimit(1); indicatorViewPager = new IndicatorViewPager(scrollIndicatorView,viewPager); inflate = LayoutInflater.from(mContext); indicatorViewPager.setAdapter(new MyAdapter(getFragmentManager())); } private int size = titles.length; private class MyAdapter extends IndicatorViewPager.IndicatorFragmentPagerAdapter { public MyAdapter(FragmentManager fragmentManager) { super(fragmentManager); } @Override public int getCount() { return size; } @Override public View getViewForTab(int position,View convertView,ViewGroup container) { if (convertView == null) { convertView = inflate.inflate(R.layout.tab_top,container,false); } TextView textView = (TextView) convertView; textView.setText(titles[position % titles.length]); int padding = dipToPix(10); textView.setPadding(padding,padding,0); return convertView; } @Override public Fragment getFragmentForPage(int position) { CreditCardFragment fragment = new CreditCardFragment(); /* Bundle bundle = new Bundle(); bundle.putInt(MoreFragment.INTENT_INT_INDEX,position); fragment.setArguments(bundle);*/ return fragment; // MoreFragment fragment = new MoreFragment(); // Bundle bundle = new Bundle(); // bundle.putInt(MoreFragment.INTENT_INT_INDEX,position); // fragment.setArguments(bundle); // return fragment; } @Override public int getItemPosition(Object object) { //这是ViewPager适配器的特点,有两个值 POSITION_NONE,POSITION_UNCHANGED,默认就是POSITION_UNCHANGED,// 表示数据没变化不用更新.notifyDataChange的时候重新调用getViewForPage return PagerAdapter.POSITION_NONE; } } private int dipToPix(float dip) { int size = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,dip,getResources().getdisplayMetrics()); return size; }
以上就是实现Android ViewPager左右滑动的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
关于[技术博客]使用PanResponder实现响应左右滑动手势和左右滑动效果的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Android GestureDetector实现手势滑动效果、android viewflipper实现左右滑动切换显示图片、Android ViewPager2 可垂直左右滑动使用【java】、Android ViewPager实现左右滑动的实例等相关知识的信息别忘了在本站进行查找喔。
本文标签: