Когда я вхожу в действие, которое должно включать 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
}
}
}
Я получаю список из «источника данных»«