Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何通过单击菜单项使recyclerView滚动到顶部位置?_Android_Kotlin_Android Recyclerview_Android Optionsmenu_Linearlayoutmanager - Fatal编程技术网

Android 如何通过单击菜单项使recyclerView滚动到顶部位置?

Android 如何通过单击菜单项使recyclerView滚动到顶部位置?,android,kotlin,android-recyclerview,android-optionsmenu,linearlayoutmanager,Android,Kotlin,Android Recyclerview,Android Optionsmenu,Linearlayoutmanager,我需要这样,如果一个点击菜单项“打开所有单词”(看下面),然后视图滚动到顶部位置。 如何从onOptionItemSelected()方法执行此操作,以及在那里键入什么 谢谢你的帮助 @AndroidEntryPoint class VocabularyFragment : Fragment(R.layout.recycler_layout), VocabularyAdapter.OnVocItemClickListener { private val viewModel: V

我需要这样,如果一个点击菜单项“打开所有单词”(看下面),然后视图滚动到顶部位置。 如何从onOptionItemSelected()方法执行此操作,以及在那里键入什么

谢谢你的帮助

@AndroidEntryPoint
class VocabularyFragment : Fragment(R.layout.recycler_layout),
    VocabularyAdapter.OnVocItemClickListener {

    private val viewModel: VocabularyViewModel by viewModels()
    private lateinit var searchView: SearchView

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        val binding = RecyclerLayoutBinding.bind(view)
        val vocabularyAdapter = VocabularyAdapter(this)
        binding.apply {
            recyclerView.apply {
                adapter = vocabularyAdapter
                layoutManager = LinearLayoutManager(requireContext())
                setHasFixedSize(true)
                itemAnimator = null // ХЗ НАДО ЛИ
            }
        }

        viewModel.words.observe(viewLifecycleOwner) {
            vocabularyAdapter.submitList(it)
        }

        setHasOptionsMenu(true)
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        return when (item.itemId) {
            R.id.action_choose_all_categories -> {
                viewModel.onChooseCategoryClick(0)
                // HERE I NEED TO call the recycler view and make it scroll to the top to the 1st position
                true
            }
            //other items ...

. 顶部是位置
0
。谢谢。但是我如何在onOptionItemSelected()中调用recyclerView上的任何内容呢?将您的
RecyclerLayoutBinding
存储在
lateinit var
属性中,这样您就可以在
onOptionItemSelected()方法中引用
binding.recyclerView
。private lateinit var mBinding=RecyclerLayoutBinding.bind(//此处我无法写入视图)在“lateinit”字的红色下划线处加上错误“'lateinit'修饰符不允许在具有初始值设定项的属性上使用”Yess,您会看到此错误,因为在以后指定变量值时会使用lateinit修饰符。使用,私有lateinit var mBinding=RecyclerLayoutBinding.bind(),您所做的与lateinit的用途完全相反。您应该做的是,私有lateinit var mBinding,然后在您的OnView中指定mBinding的值,创建如下mBinding=RecyclerLayoutBinding.bind()