以下是一个示例代码,演示了如何在Kotlin中监听屏幕横竖屏切换以及点击按钮横竖屏切换的效果:

import android.content.pm.ActivityInfo
import android.content.res.Configuration
import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun onConfigurationChanged(newConfig: Configuration) {
        super.onConfigurationChanged(newConfig)

        // 检测屏幕的方向
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            // 横屏
            // 处理横屏时的逻辑
        } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            // 竖屏
            // 处理竖屏时的逻辑
        }
    }

    fun onSwitchScreenOrientation(view: View) {
        val currentOrientation = resources.configuration.orientation

        if (currentOrientation == Configuration.ORIENTATION_LANDSCAPE) {
            // 当前为横屏,切换为竖屏
            requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
        } else {
            // 当前为竖屏,切换为横屏
            requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
        }
    }
}

在这个示例中,onCreate方法在Activity创建时设置布局文件。onConfigurationChanged方法用于监听屏幕方向的改变。当屏幕方向改变时,会调用此方法,并根据新的屏幕方向执行相应的逻辑。onSwitchScreenOrientation方法用于处理按钮点击事件,通过判断当前屏幕方向来切换屏幕的方向。

请注意,在AndroidManifest.xml文件中,需要在对应的Activity标签中添加android:configChanges='orientation|screenSize'属性,以确保Activity在屏幕方向改变时不会重新创建。

希望以上代码对您有所帮助!

Kotlin 屏幕横竖屏切换监听与按钮控制 - 详细代码示例

原文地址: https://www.cveoy.top/t/topic/qciC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录