title: Items do not always recompose correctly when using LazyColumn
body: <p>I am having some difficulty using lazycolumn in Jetpack Compose to display a list of users contained in a viewModel.</p>
  <p>When the app loads, the data for the first few users is displayed correctly, however, as the user scrolls down, and more users are made visable, the data does not always display in the UI.</p>
  <p>Furthermore, is the user scrolls back up, previously visable data is no longer displayed.</p>
  <p>I assume this has something to do with the data being lost during recomposition, however I do not know how to solve this issue</p>
  <p><strong>MainActivity</strong></p>
  <pre><code>class MainActivity : ComponentActivity() {
      override fun onCreate(savedInstanceState: Bundle?) {
          super.onCreate(savedInstanceState)
          setContent {
              ListPracticeTheme {
  
                  val viewModel : MainViewModel by viewModels()
  
                  Surface(color = MaterialTheme.colors.background) {
  
                      UsersList(viewModel = viewModel)
  
                  }
  
              }
          }
      }
  }
  
  </code></pre>
  <p><strong>UsersList</strong></p>
  <pre><code>@Composable
  fun UsersList(viewModel: MainViewModel) {
  
      LazyColumn(
          verticalArrangement = Arrangement.spacedBy(4.dp)
      ) {
  
          items(viewModel.users.value) { user -&gt;
  
              Card(
                  modifier = Modifier.fillMaxWidth()
              ) {
                  Column(Modifier.fillMaxWidth()) {
                          Text(text = &quot;USER ID = ${user.userID}&quot;)
                          Text(text = &quot;USERNAME = ${user.userName}&quot;)
                          Text(text = &quot;DESCRIPTION = ${user.description}&quot;)
                  }
              }
              
          }
      }
  }
  
  </code></pre>
  <p><strong>MainViewModel</strong></p>
  <pre><code>class MainViewModel : ViewModel() {
  
      var users : MutableState&lt;List&lt;User&gt;&gt; = mutableStateOf(ArrayList())
  
      init{
          for(i in 1..20){
              users.value += randomPost()
          }
      }
  }
  </code></pre>
  <p>As the user scrolls, the UI is not updated correctly, as seen in this video:</p>
  <p><a href="https://youtu.be/ETEuMGStIIk" rel="nofollow noreferrer">https://youtu.be/ETEuMGStIIk</a></p>
  <p>Instead, as the user scrolls, more users data should be displayed, and this data should be made visible again when the user scrolls back up.</p>