Проведите между 3 действиями (kotlin)
У меня есть некоторые проблемы со смахиванием слева направо или справа налево, проблема в том, что, когда я проведу пальцем слева направо, чтобы перейти к другому занятию, мой экран стал черным на 3 или 4 секунды, и я хочу знать, как это исправить.
Вторая проблема заключается в том, что когда я провожу пальцем назад, чтобы перейти к основному виду деятельности, он не отвечает правильно. Например, когда я проведу пальцем слева направо от 3-го упражнения, чтобы вернуться к основному упражнению, оно идет справа налево, и я хочу, чтобы экран шел слева
Как исправить эти проблемы?
slide_left_in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:duration="@integer/open_activity_time"
android:fromXDelta="100%"
android:toXDelta="0%"/>
</set>
slide_left_out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<translate
android:fromXDelta="0%" android:toXDelta="100%"
android:duration="500" />
</set>
slide_right_in
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@integer/open_activity_time"
android:fromXDelta="-100%p"
android:toXDelta="0" />
</set>
slide_right_out
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="@integer/open_activity_time" //1000 for all
android:fromXDelta="0"
android:toXDelta="100%p"/>
</set>
Основная деятельность
class MainActivity : 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()
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
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) {
Animation.RELATIVE_TO_SELF
val i = Intent(this@MainActivity, Main2Activity::class.java)
startActivity(i)
finish()
} else if (x1 > x2) {
this.overridePendingTransition(R.anim.slide_left_in,R.anim.slide_left_out)
val i = Intent(this@MainActivity, Main3Activity::class.java)
startActivity(i)
finish()
}
}
}
return false
}