2016-12-05 99 views
-7

recyclerViewwrap_contentの高さをどのようにしてスクロールバーが表示されないようにするか。コンテンツの長さに合わせて高さを高くしたいが、私はスクロールバーを入れたくないが、試してみるとコンテンツをrecyclerViewに追加しますが、そこにスクロールバーを置き、リサイクルビューの高さを固定します。これを解決するのを手伝ってください。wrap_contentにrecyclerviewの高さを設定する方法は?

+2

それはRecyclerViewがuslessなります...ただのLinearLayoutを使います.. – Selvin

+0

アイテムのレイアウトを作成し、それをダイナミックに追加します。 – akshay

+0

は分かりませんでした。詳しく教えてください。 –

答えて

1

あなたがこれを達成するために必要なのは、RecyclerViewの高さを動的に設定することです。以前はこれをListViewで行いました。

あなたは、このメソッドを使用することができListViewコントロールするRecyclerViewから切り替えることができた場合は、それ以外のコメントを残して、私はあなたのRecyclerViewのコードを調整します:

/** 
* Sets ListView height dynamically based on the height of the items. 
* 
* @param listView to be resized 
* @return true if the listView is successfully resized, false otherwise 
*/ 
public static boolean setListViewHeightBasedOnItems(ListView listView) { 

    ListAdapter listAdapter = listView.getAdapter(); 
    if (listAdapter != null) { 

     int numberOfItems = listAdapter.getCount(); 

     // Get total height of all items. 
     int totalItemsHeight = 0; 
     for (int itemPos = 0; itemPos < numberOfItems; itemPos++) { 
      View item = listAdapter.getView(itemPos, null, listView); 
      item.measure(0, 0); 
      totalItemsHeight += item.getMeasuredHeight(); 
     } 

     // Get total height of all item dividers. 
     int totalDividersHeight = listView.getDividerHeight() * 
       (numberOfItems - 1); 

     // Set list height. 
     ViewGroup.LayoutParams params = listView.getLayoutParams(); 
     params.height = totalItemsHeight + totalDividersHeight; 
     listView.setLayoutParams(params); 
     listView.requestLayout(); 

     return true; 

    } else { 
     return false; 
    } 

} 
関連する問題