Android – how to change Recyclerview height dynamically?

I’m stuck with an issue about changing Recycler height based on its total items.
What I have tried is to use Layout Param like this:

        ViewGroup.LayoutParams params = myRecyclerView.getLayoutParams();
        params.height = itemHeight * numberOfItem;


  • In Android, how do I take an action whenever a variable changes?
  • First commit Android Studio Project — What should leave out?
  • Verify Android apk has not been repackaged?
  • Android Studio recognizes physical Device as Null?
  • Android UDID like IPhone?
  • Bitwise “& ” on a long?
  •        ViewGroup.LayoutParams params = new  RecyclerView.LayoutParams(..WRAP_CONTENT, ...WRAP_CONTENT);;
           params.height = itemHeight * numberOfItem;

    But it didn’t work.
    How can I do it ? Please help me !

    Related posts:

    Wifi position triangulation
    Difference between preference and shared preference in Android
    SwipeRefreshLayout - swipe down to refresh but not move the view pull down
    PreferenceFragmentCompat requires preferenceTheme to be set
    Remote Test Laboratory (RTL) for Android
    Is there a way to listen for animation end in AnimatedVectorDrawables
  • error package does not exist
  • onRegistered() from GCMIntentService never called
  • Remove application icon and title from Honeycomb action bar
  • Setting Roboto font in TextView - xml
  • Make sure that my code is thread safe
  • Clicking any button more than once in crosswalk browser does not work
  • 3 Solutions collect form web for “Android – how to change Recyclerview height dynamically?”

    I tried this. It worked. May be help.

    public void onBindViewHolder(FeedListRowHolder feedListRowHolder, int i) {
        //this change height of rcv
         LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
         params.height =80; //height recycleviewer
        FeedItem feedItem = feedItemList.get(i);
        feedListRowHolder.itemView.setActivated(selectedItems.get(i, false));
        feedListRowHolder.setClickListener(new FeedListRowHolder.ClickListener() {
            public void onClick(View v, int pos, boolean isLongClick) {
                if (isLongClick) {
                    // View v at position pos is long-clicked.
                    String poslx = pos + "";
                    Toast.makeText(mContext, "longclick " + poslx, Toast.LENGTH_SHORT).show();
                } else {
                    // View v at position pos is clicked.
                    String possx = pos + "";
                    Toast.makeText(mContext, "shortclick " + possx, Toast.LENGTH_SHORT).show();

    You should use LayoutParams of parent’s view in setLayoutParams(params).

    For example:


    Change LayoutParams in the code.

      RelativeLayout.LayoutParams lp =
                new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, 500);

    This code works I am sure about it

    ViewGroup.LayoutParams params=recyclerview.getLayoutParams();

    The other thing you could do is make a linear layout as the parent of the recycler view and then increase the height dynamically for the parent view

    Consider the following XML below


    Consider the following code

    LinearLayout layout = (LinearLayout)findViewById(;
    LinearLayout.LayoutParams lp = (LayoutParams) layout.getLayoutParams();
    lp.height = 100;
    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.