覆盖onDrawerOpened()的问题-Kotlin

时间:2019-06-19 23:01:49

标签: kotlin overriding navigation-drawer drawerlayout

我正在使用带有项目列表的Navigation Drawer Layout开发Kotlin编码的应用程序。当我使用左上方的图标打开抽屉时,我希望它通知notifyDataSetChanged,以便从MainActivity外部更新列表。这包括按下“后退”按钮,滑动打开抽屉或单击左上方的堆积线图标

这是我的代码的简化版本,但从本质上讲,这是一个带有recyclerView的导航抽屉活动,用于我的问题上下文:

class MainActivity : AppCompatActivity() {
    lateinit var drawerLayout: DrawerLayout
    lateinit var navView: NavigationView
    lateinit var toolbar: Toolbar

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    toolbar = findViewById(R.id.app_bar_toolbar)
    setSupportActionBar(toolbar)

    drawerLayout = findViewById(R.id.drawer_layout)
    navView = nav_view
    val toggle = ActionBarDrawerToggle(this, drawerLayout, toolbar, 
    R.string.navigation_drawer_open, R.string.navigation_drawer_close)

    drawerLayout.addDrawerListener(toggle)
    toggle.syncState()
    }

我花了几个小时尝试一切,但主要是我无法使它起作用:

override fun onDrawerOpen(view:View){
    ... myAdapter.notifyDataSetChanged()
super.onDrawerOpen(view)
}

它给我提示“不覆盖任何内容”或“未使用”,如果我尝试将其添加到onCreate中的任何代码中,它会指出“修饰符'覆盖'不适用于本地函数。

我在做什么错?打开抽屉时,有没有更好的方法来通知数据更改?

0 个答案:

没有答案