Android开发之RecyclerView嵌套ListView自动计算高度的方法
生活随笔
收集整理的這篇文章主要介紹了
Android开发之RecyclerView嵌套ListView自动计算高度的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
老套路看圖:下面是我在我愛我家在職時候做的一個小需求記錄下
最外層是個RecylerView子布局里面的房屋描述信息是個listview根據后臺返回字段動態顯示的高度。
解決思路:可以計算每個listview的子布局的高度相加起來就是整個listview的告訴。
方法一:
自定義ListView:
package com.wiwj.itNew5iwork.view;import android.content.Context; import android.util.AttributeSet; import android.widget.ListView;/*** @author lenovo* 2020年12月16日15:30:07* 自定義ListView實現高度自適應*/ public class HeightListView extends ListView {public HeightListView(Context context) {super(context);}public HeightListView(Context context, AttributeSet attrs) {super(context, attrs);}public HeightListView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int heightSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, heightSpec);} }方法二:動態計算
public void setListViewHeightBasedOnChildren(ListView listView) {ListAdapter listAdapter = listView.getAdapter();if (listAdapter == null) {return;}int totalHeight = 0;for (int i = 0; i < listAdapter.getCount(); i++) {View listItem = listAdapter.getView(i, null, listView);listItem.measure(0, 0);totalHeight += listItem.getMeasuredHeight();}ViewGroup.LayoutParams params = listView.getLayoutParams();params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));listView.setLayoutParams(params);}方法二的調用方法:
setListViewHeightBasedOnChildren(listview);再次非常感謝如下博主:方法一博主方法二博主
總結
以上是生活随笔為你收集整理的Android开发之RecyclerView嵌套ListView自动计算高度的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java.lang.Unsatisfie
- 下一篇: android sina oauth2.