title: Keep recyclerView at bottom when already at bottom and new item is added
body: <p>I am creating a chat app. I am attempting to make all new messages appear at the bottom of the chat app when the current lowest item in the list is visible on screen, but not when the user is scrolled up (like most chat apps). As of  right now, I have gotten this to work when there is still unused space on screen, but when the RecyclerView has too many views to fit, it begins placing new messages off screen to the bottom. Here is my method that creates the RecyclerView:</p>
  
  <pre><code>private void initRecyclerView() {
  
  
      mRecyclerView = findViewById(R.id.chatRecyclerView);
      mAdapter = new ChatRecyclerViewAdapter(this, mMessages, mUsernames, mRoomID, mDatabaseReference);
      mRecyclerView.setAdapter(mAdapter);
      final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
      linearLayoutManager.setStackFromEnd(true);
      RecyclerView.AdapterDataObserver observer = new RecyclerView.AdapterDataObserver() {
          @Override
          public void onChanged() {
              super.onChanged();
  
              if(linearLayoutManager.findLastVisibleItemPosition()==(mAdapter.getItemCount()-1)){
                  mRecyclerView.smoothScrollToPosition(mAdapter.getItemCount()-1);
              }
          }
      };
      mAdapter.registerAdapterDataObserver(observer);
      mRecyclerView.setLayoutManager(linearLayoutManager);
  </code></pre>