当前位置:网站首页>Complete activity switching according to sliding
Complete activity switching according to sliding
2022-07-05 11:57:00 【asahi_ xin】
quote
First step : take OnGestureListener Interface encapsulation
public class SlideListener implements android.view.GestureDetector.OnGestureListener {
private Context context;
private Class<? extends Activity> leftCls;
private Class<? extends Activity> rightCls;
public SlideListener(Context context, Class<? extends Activity> leftCls,Class<? extends Activity> rightCls) {
this.context = context;
this.leftCls = leftCls;
this.rightCls = rightCls;
}
@Override
public boolean onDown(MotionEvent e) {
return true;
}
@Override
public void onShowPress(MotionEvent e) {
}
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) {
return false;
}
@Override
public void onLongPress(MotionEvent e) {
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
int FLING_MIN_DISTANCE = 50;
float FLING_MIN_VELOCITY = 50;
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
// Scroll left , The right view shows
ActivityManager.goActivity(context, rightCls);
} else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
// Slide to the right , Left side view display
ActivityManager.goActivity(context, leftCls);
}
return false;
}
}
The second step : initialization
public class MainActivity extends AppCompatActivity {
GestureDetector gd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gd = new GestureDetector(this, new SlideListener(this, LeftActivity.class,RightActivity.class));
}
}
The third step : Realization OnTouchListener Interface , And set up monitoring
public class MainActivity extends AppCompatActivity implements View.OnTouchListener{
GestureDetector gd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gd = new GestureDetector(this, new SlideListener(this, LeftActivity.class,RightActivity.class));
ConstraintLayout layout = findViewById(R.id.layout);
layout.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
v.performClick();
return gd.onTouchEvent(event);
}
}
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.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"
android:id="@+id/layout"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Optimize
The above three steps can realize sliding switching , But it seems stiff without animation when switching , You can refer to
边栏推荐
- [pytorch pre training model modification, addition and deletion of specific layers]
- 阻止瀏覽器後退操作
- JS for loop number exception
- Unity Xlua MonoProxy Mono代理类
- 11. (map data section) how to download and use OSM data
- [singleshotmultiboxdetector (SSD, single step multi frame target detection)]
- Redis集群的重定向
- iTOP-3568开发板NPU使用安装RKNN Toolkit Lite2
- Is investment and finance suitable for girls? What financial products can girls buy?
- Idea set the number of open file windows
猜你喜欢
COMSOL -- 3D casual painting -- sweeping
Principle of redis cluster mode
Is it difficult to apply for a job after graduation? "Hundreds of days and tens of millions" online recruitment activities to solve your problems
[upsampling method opencv interpolation]
[crawler] bugs encountered by wasm
一次生产环境redis内存占用居高不下问题排查
pytorch-多层感知机MLP
Reading notes of growth hacker
Hiengine: comparable to the local cloud native memory database engine
【L1、L2、smooth L1三类损失函数】
随机推荐
Redis master-slave mode
871. Minimum Number of Refueling Stops
Open3D 网格(曲面)赋色
View all processes of multiple machines
Mysql统计技巧:ON DUPLICATE KEY UPDATE用法
11. (map data section) how to download and use OSM data
[deploy pytoch project through onnx using tensorrt]
Application of a class of identities (vandermond convolution and hypergeometric functions)
ACID事务理论
Prevent browser backward operation
2022年国内云管平台厂商哪家好?为什么?
Empêcher le navigateur de reculer
redis主从中的Master自动选举之Sentinel哨兵机制
Dynamic SQL of ibatis
Pytorch weight decay and dropout
Unity xlua monoproxy mono proxy class
How to get a token from tokenstream based on Lucene 3.5.0
互联网公司实习岗位选择与简易版职业发展规划
Mmclassification training custom data
中非 钻石副石怎么镶嵌,才能既安全又好看?