Проведите между 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
}

0 ответов

Другие вопросы по тегам