RecyclerView отображается только после нажатия иконки - PullRequest
0 голосов
/ 03 октября 2019

Когда я вхожу в действие, которое должно включать RecyclerView, оно не сразу показывает ReyclerView. По некоторым причинам, он отображает RecyclerView только после того, как я нажму значок SearchView.

После того, как я нажму значок поиска и Перед тем, как нажать значок поиска . Вот мой адаптер для RecyclerView:

class BlogRecyclerAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder>() {

    override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
        super.onAttachedToRecyclerView(recyclerView)
        var con = recyclerView.context
    }


     var items: List<BlogPost> = ArrayList()

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
        return BlogViewHolder(
            LayoutInflater.from(parent.context).inflate(R.layout.user_row, parent, false)
            )
    }

    override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
        when(holder) {

            is BlogViewHolder ->{
                holder.bind(items.get(position))
            }
        }
    }


    override fun getItemCount(): Int {
        return items.size
    }

    fun submitList(blogList: List<BlogPost>){
        items = blogList
    }

    class BlogViewHolder constructor(
        itemView: View
    ): RecyclerView.ViewHolder(itemView){
        val phoneButton = itemView.phoneButton
        val locationButton = itemView.locationButton
        val nameButton = itemView.nameButton

        fun bind(blogPost: BlogPost){

            //שם
            nameButton.setText(blogPost.name)

            //אפטר
            if(blogPost.place=="after"){
                locationButton.setBackgroundColor(Color.parseColor("#F03434"))
                locationButton.setText("אפטר")
            }
    }
}

И это действие, которое должно отображать RecyclerView, а также содержит панель поиска:

class Tavla : AppCompatActivity() {

    private lateinit var blogAdapter: BlogRecyclerAdapter

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

        initRecycelrView()
        addDataset()

    }

   //The method which the search button calls
    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.main_menu, menu)
       val item = menu!!.findItem(R.id.action_search)
        val searchView = item.actionView as androidx.appcompat.widget.SearchView
        return super.onCreateOptionsMenu(menu)
    }

    private fun addDataset(){
        val data = DataSource.createDataSet()
        blogAdapter.submitList(data)
    }

    private fun initRecycelrView(){
        recyclerView.apply {
            recyclerView.layoutManager = LinearLayoutManager(this@Tavla)
            val topSpacingDecoration = TopSpacingItemDecoration(30)
            addItemDecoration(topSpacingDecoration)
            blogAdapter = BlogRecyclerAdapter()
            adapter = blogAdapter
        }
    }
}

Я получаю список из «источника данных»«

...