当前位置:网站首页>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
边栏推荐
- 谜语1
- Splunk configuration 163 mailbox alarm
- COMSOL -- 3D casual painting -- sweeping
- Redirection of redis cluster
- Unity xlua monoproxy mono proxy class
- pytorch-多层感知机MLP
- Yolov5 target detection neural network -- calculation principle of loss function
- The solution of outputting 64 bits from printf format%lld of cross platform (32bit and 64bit)
- View all processes of multiple machines
- 【yolov3损失函数】
猜你喜欢
Sentinel sentinel mechanism of master automatic election in redis master-slave
Yolov5 target detection neural network -- calculation principle of loss function
[crawler] Charles unknown error
[pytorch pre training model modification, addition and deletion of specific layers]
Yolov 5 Target Detection Neural Network - Loss Function Calculation Principle
Multi table operation - Auto Association query
[deploy pytoch project through onnx using tensorrt]
【使用TensorRT通过ONNX部署Pytorch项目】
互联网公司实习岗位选择与简易版职业发展规划
yolov5目標檢測神經網絡——損失函數計算原理
随机推荐
石油化工企业安全生产智能化管控系统平台建设思考和建议
互联网公司实习岗位选择与简易版职业发展规划
[leetcode] wild card matching
Redis cluster (master-slave) brain crack and solution
splunk配置163邮箱告警
XML解析
Hiengine: comparable to the local cloud native memory database engine
跨平台(32bit和64bit)的 printf 格式符 %lld 输出64位的解决方式
【PyTorch预训练模型修改、增删特定层】
C # implements WinForm DataGridView control to support overlay data binding
redis的持久化机制原理
Codeforces Round #804 (Div. 2)
[crawler] bugs encountered by wasm
Open3d European clustering
《增长黑客》阅读笔记
11. (map data section) how to download and use OSM data
Solve the grpc connection problem. Dial succeeds with transientfailure
Liunx prohibit Ping explain the different usage of traceroute
871. Minimum Number of Refueling Stops
如何让你的产品越贵越好卖