有没有人能帮我解释一下,这里面的代码.如果我创建一个新窗口,按照这个逻辑,怎么显示出来

2022-01-12 15:27:21 +08:00
 sucvia

package com.example.myapplication2

import android.os.Bundle import com.google.android.material.snackbar.Snackbar import androidx.appcompat.app.AppCompatActivity import androidx.navigation.findNavController import androidx.navigation.ui.AppBarConfiguration import androidx.navigation.ui.navigateUp import androidx.navigation.ui.setupActionBarWithNavController import android.view.Menu import android.view.MenuItem import com.example.myapplication2.databinding.ActivityMainBinding

class MainActivity : AppCompatActivity() {

private lateinit var appBarConfiguration: AppBarConfiguration //创建 2 个变量
private lateinit var binding: ActivityMainBinding

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    binding = ActivityMainBinding.inflate(layoutInflater)
    setContentView(binding.root)

    setSupportActionBar(binding.toolbar)

    val navController = findNavController(R.id.nav_host_fragment_content_main)
    appBarConfiguration = AppBarConfiguration(navController.graph)
    setupActionBarWithNavController(navController, appBarConfiguration)

    binding.fab.setOnClickListener { view ->
        Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
            .setAction("Action", null).show()
    }
}

override fun onCreateOptionsMenu(menu: Menu): Boolean {
    // Inflate the menu; this adds items to the action bar if it is present.
    menuInflater.inflate(R.menu.menu_main, menu)
    return true
}

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    return when (item.itemId) {
        R.id.action_settings -> true
        else -> super.onOptionsItemSelected(item)
    }
}

override fun onSupportNavigateUp(): Boolean {
    val navController = findNavController(R.id.nav_host_fragment_content_main)
    return navController.navigateUp(appBarConfiguration)
            || super.onSupportNavigateUp()
}

}

我是个萌新,刚学 Kotlin,有没有推荐群一起学习?

按照以上代码,如果我有个按钮 id="create_button" ,按下载入 test_window.xml 窗口. test_window.xml 里面有什么讲究吗?

2540 次点击
所在节点    Kotlin
3 条回复
AoEiuV020CN
2022-01-12 15:34:50 +08:00
这是安卓问题,你该学的是安卓,随便找个教程跟着走走,你所谓窗口在安卓可以是 activity fragment dialog ,可以先学到这里,再考虑这问题,
sucvia
2022-01-12 15:38:41 +08:00
@AoEiuV020CN 好的 我去了解一下 看过很多 kotlin 的教程,基本上都是讲 kotlin 语法,没有讲交互的
XXWHCA
2022-02-17 17:28:37 +08:00
你用的是 Jetpack navigation 导航,是 google 推荐的单 Activity 应用方案,如果是刚入门觉得你还是好好看官方文档 https://developer.android.google.cn/guide/navigation
实际上 navigation 是对 Fragment 的封装,让 Fragment 更易于维护和使用。

如果你需要导航到其他页面需要先将目标 fragment 注册到导航图,然后 navController.navigate(id)就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/827831

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX