Android: 是否可以在两个 Activity 之间滑动?
Android: Is it possible to Swipe between two Activities?
我想在两个活动之间滑动(不是碎片)这两个活动都是从 ActionBarACtivity 扩展的,所以这可能吗?如果可能的话,它将如何完成?
你在扩展一个activity并不意味着它们在屏幕上是相关的或window,activity
class是一个抽象或class 你可以把你的逻辑放到哪里。由于每个 activity 都附加到一个 window,所以这是可能的。
查看像 this 这样的库,它会为您提供简单的辅助函数来实现它,或者阅读代码来自定义它;)
由于这涉及大量代码,您还可以查看 this or sliding activity 以了解实现它的想法 ;)
注意:唯一的方法是从第二个开始 activity 然后控制它的可见性
您可以在两个活动之间滑动,试试这个代码。
在 Kotlin 中:
class Main3Activity : AppCompatActivity() {
internal var x1: Float = 0.toFloat()
internal var x2: Float = 0.toFloat()
internal var y1: Float = 0.toFloat()
internal var y2: Float = 0.toFloat()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main3)
}
override fun onTouchEvent(tochevent: MotionEvent): Boolean {
when (tochevent.action) {
MotionEvent.ACTION_DOWN -> {
x1 = tochevent.x
y1 = tochevent.y
}
MotionEvent.ACTION_UP -> {
x2 = tochevent.x
y2 = tochevent.y
if (x1 < x2) {
val i = Intent(this@Main3Activity, Main2Activity::class.java)
startActivity(i)
}
}
}
return false
}
我想在两个活动之间滑动(不是碎片)这两个活动都是从 ActionBarACtivity 扩展的,所以这可能吗?如果可能的话,它将如何完成?
你在扩展一个activity并不意味着它们在屏幕上是相关的或window,activity
class是一个抽象或class 你可以把你的逻辑放到哪里。由于每个 activity 都附加到一个 window,所以这是可能的。
查看像 this 这样的库,它会为您提供简单的辅助函数来实现它,或者阅读代码来自定义它;)
由于这涉及大量代码,您还可以查看 this or sliding activity 以了解实现它的想法 ;)
注意:唯一的方法是从第二个开始 activity 然后控制它的可见性
您可以在两个活动之间滑动,试试这个代码。
在 Kotlin 中:
class Main3Activity : AppCompatActivity() {
internal var x1: Float = 0.toFloat()
internal var x2: Float = 0.toFloat()
internal var y1: Float = 0.toFloat()
internal var y2: Float = 0.toFloat()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main3)
}
override fun onTouchEvent(tochevent: MotionEvent): Boolean {
when (tochevent.action) {
MotionEvent.ACTION_DOWN -> {
x1 = tochevent.x
y1 = tochevent.y
}
MotionEvent.ACTION_UP -> {
x2 = tochevent.x
y2 = tochevent.y
if (x1 < x2) {
val i = Intent(this@Main3Activity, Main2Activity::class.java)
startActivity(i)
}
}
}
return false
}