title: Using TransitionManager with ChangeBounds on expanding item in RecyclerView is making weird visuals when combined with layout_height: match_constraint
body: <p>I am using Custom Adapter for RecyclerView and I needed to expand items when clicking on them. I followed <a href="https://stackoverflow.com/questions/27203817/recyclerview-expand-collapse-items">this</a> to achieve it using the method recommended by Google. The expanding is working fine, but the animation using <code>TransitionManager.beginDelayedTransition(recyclerView);</code> wasn't exactly what I was looking for. Also really weird stuff happened when I tried to scroll the RecyclerView during the animation which would mess things up.</p>
  
  <p>So I went online to look for different way to animate the expanding. I found this:</p>
  
  <pre><code>            final ChangeBounds transition = new ChangeBounds();
              transition.setDuration(100L);
              TransitionManager.beginDelayedTransition(mRecyclerView,transition);
  </code></pre>
  
  <p>This was working really well since it would just animate the expanding item's row and then show the <code>View.GONE</code> views. No alpha transition etc involved. But then I had to change the RecyclerView's <code>layout_height</code> from <code>match_parent</code> to <code>match_constraint</code> because soft keyboard would often hide the expanded row (User can edit the item and keyboard pops ups).</p>
  
  <p><strong>What happens now:</strong> When I click to expand the RecyclerView's item, it Expands itself for really short time, then goes back to normal state and THEN starts the animation. It makes really weird blinking animation which is bad and ruins the smoothness. It wasn't doing this before the with the <code>layout_height</code> of RecyclerView set to <code>match_parent</code>, but now with <code>match_constraint</code> it is.</p>
  
  <p>There is code I am using to expand it. Following the article linked above.</p>
  
  <pre><code>    final boolean isExpanded = position==mExpandedPosition;
      // Hidden Views
      holder.view1.setVisibility(isExpanded?View.VISIBLE:View.GONE);
      holder.view2.setVisibility(isExpanded?View.VISIBLE:View.GONE);
      holder.view3.setVisibility(isExpanded?View.VISIBLE:View.GONE);
  
      holder.itemView.setActivated(isExpanded);
      holder.itemView.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              mExpandedPosition = isExpanded? -1:holder.getAdapterPosition();
              // Animace
              final ChangeBounds transition = new ChangeBounds();
              transition.setDuration(100L);
            TransitionManager.beginDelayedTransition(mRecyclerView,transition);
  
              // Hiding keyboard if it's up
              InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE);
              imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
  
  
              notifyDataSetChanged();
          }
      });
  </code></pre>
  
  <p>Am I doing things right? It's possible I am missing something basic. I am pretty new to Android Development. Thank you!</p>