android.widget.ListView.setLayoutParams()方法的使用及代码示例

x33g5p2x  于2022-01-23 转载在 其他  
字(13.1k)|赞(0)|评价(0)|浏览(150)

本文整理了Java中android.widget.ListView.setLayoutParams()方法的一些代码示例,展示了ListView.setLayoutParams()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ListView.setLayoutParams()方法的具体详情如下:
包路径:android.widget.ListView
类名称:ListView
方法名:setLayoutParams

ListView.setLayoutParams介绍

暂无

代码示例

代码示例来源:origin: stackoverflow.com

/**** Method for Setting the Height of the ListView dynamically.
 **** Hack to fix the issue of not showing all the items of the ListView
 **** when placed inside a ScrollView  ****/
public static void setListViewHeightBasedOnChildren(ListView listView) {
  ListAdapter listAdapter = listView.getAdapter();
  if (listAdapter == null)
    return;

  int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.UNSPECIFIED);
  int totalHeight = 0;
  View view = null;
  for (int i = 0; i < listAdapter.getCount(); i++) {
    view = listAdapter.getView(i, view, listView);
    if (i == 0)
      view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, LayoutParams.WRAP_CONTENT));

    view.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
    totalHeight += view.getMeasuredHeight();
  }
  ViewGroup.LayoutParams params = listView.getLayoutParams();
  params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  listView.setLayoutParams(params);
}

代码示例来源:origin: stackoverflow.com

public boolean setListViewHeight(ListView listView) {
  ListAdapter listAdapter = listView.getAdapter();
  if (listAdapter != null) {

    int numberOfItems = listAdapter.getCount();

    View item = listAdapter.getView(0, null, listView);
    item.measure(0, 0);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, numberOfItems * item.getMeasuredHeight());
    listView.setLayoutParams(params);

    return true;

  } else {
    return false;
  }
}

代码示例来源:origin: stackoverflow.com

ListView listView = (ListView) findViewById(R.id.listView);
 String[] names = new String[] {"hi", "my", "name", "is", "slim", "shady"};
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, android.R.id.text1, names);
 listView.setAdapter(adapter);
 View row = listView.getAdapter().getView(0, null, listView);
 row.measure(0, 0);
 int rowHeight = row.getMeasuredHeight();
 listView.setLayoutParams(new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, rowHeight*3));

代码示例来源:origin: offensive-security/nethunter-app

private void fixListHeight(ListView theListView, ArrayAdapter theAdapter) {
  int totalHeight = 0;
  for (int i = 0; i < theAdapter.getCount(); i++) {
    View listItem = theAdapter.getView(i, null, theListView);
    listItem.measure(0, 0);
    totalHeight += listItem.getMeasuredHeight();
  }
  ViewGroup.LayoutParams params = theListView.getLayoutParams();
  params.height = totalHeight + (theListView.getDividerHeight() * (theAdapter.getCount() - 1));
  theListView.setLayoutParams(params);
  theListView.requestLayout();
}

代码示例来源:origin: stackoverflow.com

public static void expandListViewHeight(ListView listView) {
  ListAdapter listAdapter = listView.getAdapter();
  if (listAdapter == null)
    return;

  ViewGroup.LayoutParams params = listView.getLayoutParams();
  listView.measure(0, 0);
  params.height = listView.getMeasuredHeight() * listAdapter.getCount() + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  listView.setLayoutParams(params);
}

代码示例来源:origin: stackoverflow.com

public class Utility {
  public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
      // pre-condition
      return;
    }

    int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom();

    for (int i = 0; i < listAdapter.getCount(); i++) {
      View listItem = listAdapter.getView(i, null, listView);
      if (listItem instanceof ViewGroup) {
        listItem.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
       }

       listItem.measure(0, 0);
       totalHeight += listItem.getMeasuredHeight();
    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
  }
}

代码示例来源:origin: stackoverflow.com

public static void setListViewHeightBasedOnChildren(ListView listView) {
   ListAdapter listAdapter = listView.getAdapter(); 
   if (listAdapter == null) {
     // pre-condition
     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);
 }

代码示例来源:origin: stackoverflow.com

public static void getTotalHeightofListView(ListView listView) {

  ListAdapter mAdapter = listView.getAdapter();

  int totalHeight = 0;

  for (int i = 0; i < mAdapter.getCount(); i++) {
    View mView = mAdapter.getView(i, null, listView);

    mView.measure(
        MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),

        MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));

    totalHeight += mView.getMeasuredHeight();
    Log.w("HEIGHT" + i, String.valueOf(totalHeight));

  }

  ViewGroup.LayoutParams params = listView.getLayoutParams();
  params.height = totalHeight
      + (listView.getDividerHeight() * (mAdapter.getCount() - 1));
  listView.setLayoutParams(params);
  listView.requestLayout();

}

代码示例来源:origin: JackyAndroid/AndroidTVLauncher

/**
 * @param listView
 * @author sunglasses
 * @category 计算listview高度
 */
public static 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);
}

代码示例来源:origin: stackoverflow.com

public static void justifyListViewHeightBasedOnChildren (ListView listView) {

  ListAdapter adapter = listView.getAdapter();

  if (adapter == null) {
    return;
  }
  ViewGroup vg = listView;
  int totalHeight = 0;
  for (int i = 0; i < adapter.getCount(); i++) {
    View listItem = adapter.getView(i, null, vg);
    listItem.measure(0, 0);
    totalHeight += listItem.getMeasuredHeight();
  }

  ViewGroup.LayoutParams par = listView.getLayoutParams();
  par.height = totalHeight + (listView.getDividerHeight() * (adapter.getCount() - 1));
  listView.setLayoutParams(par);
  listView.requestLayout();
}

代码示例来源:origin: stackoverflow.com

public class Utils {

  public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter(); 
    if (listAdapter == null) {
      // pre-condition
      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);
    listView.requestLayout();
  }     
}

代码示例来源:origin: stackoverflow.com

public class Utility {

  public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
      // pre-condition
      return;
    }

    int totalHeight = 0;
    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
    for (int i = 0; i < listAdapter.getCount(); i++) {
      View listItem = listAdapter.getView(i, null, listView);
      listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
      totalHeight += listItem.getMeasuredHeight();
    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
    listView.requestLayout();
  }
}

代码示例来源:origin: stackoverflow.com

public static void setListViewHeightBasedOnChildren(ListView listView) {
  ListAdapter listAdapter = listView.getAdapter();
  if (listAdapter == null) {
    return;
  }
  int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
  int totalHeight = 0;
  View view = null;
  for (int i = 0; i < listAdapter.getCount(); i++) {
    view = listAdapter.getView(i, view, listView);
    if (i == 0) {
      view.setLayoutParams(new ViewGroup.LayoutParams(desiredWidth, LayoutParams.WRAP_CONTENT));
    }
    view.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
    totalHeight += view.getMeasuredHeight();
  }
  ViewGroup.LayoutParams params = listView.getLayoutParams();
  params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  listView.setLayoutParams(params);
  listView.requestLayout();
}

代码示例来源:origin: stackoverflow.com

public void setListViewHeightBasedOnChildren(ListView listView) {
  ListAdapter listAdapter = listView.getAdapter();
  if (listAdapter == null) {
    // pre-condition
    return;
  }

  int totalHeight = listView.getPaddingTop() + listView.getPaddingBottom();
  int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
  for (int i = 0; i < listAdapter.getCount(); i++) {
    View listItem = listAdapter.getView(i, null, listView);

    if(listItem != null){
      // This next line is needed before you call measure or else you won't get measured height at all. The listitem needs to be drawn first to know the height.
      listItem.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
      listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
      totalHeight += listItem.getMeasuredHeight();

    }
  }

  ViewGroup.LayoutParams params = listView.getLayoutParams();
  params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
  listView.setLayoutParams(params);
  listView.requestLayout();
}

代码示例来源:origin: stackoverflow.com

public class Utility {
  public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter(); 
    if (listAdapter == null) {
      // pre-condition
      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);
  }
}

代码示例来源:origin: stackoverflow.com

public static void updateListViewHeight(ListView myListView) {
   ListAdapter myListAdapter = myListView.getAdapter();
   if (myListAdapter == null) {            
       return;
   }
  //get listview height
  int totalHeight = 0;
  int adapterCount = myListAdapter.getCount()
  for (int size = 0; size < adapterCount ; size++) {
    View listItem = myListAdapter.getView(size, null, myListView);
    listItem.measure(0, 0);
    totalHeight += listItem.getMeasuredHeight();
  }
  //Change Height of ListView 
  ViewGroup.LayoutParams params = myListView.getLayoutParams();
  params.height = totalHeight + (myListView.getDividerHeight() * (adapterCount - 1));
  myListView.setLayoutParams(params);
}

代码示例来源:origin: stackoverflow.com

public void justifyListViewHeightBasedOnChildren (ListView listView) {

  ListAdapter adapter = listView.getAdapter();

  if (adapter == null) {
    return;
  }
  ViewGroup vg = listView;
  int totalHeight = 0;
  for (int i = 0; i < adapter.getCount(); i++) {
    View listItem = adapter.getView(i, null, vg);
    listItem.measure(0, 0);
    totalHeight += listItem.getMeasuredHeight();
  }

  ViewGroup.LayoutParams par = listView.getLayoutParams();
  par.height = totalHeight + (listView.getDividerHeight() * (adapter.getCount() - 1));
  listView.setLayoutParams(par);
  listView.requestLayout();
}

代码示例来源:origin: stackoverflow.com

public class Utils {

public static void setListViewHeightBasedOnChildren(ListView listView) {
  ListAdapter listAdapter = listView.getAdapter(); 
  if (listAdapter == null) {
    // pre-condition
    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);
  listView.requestLayout();
}


}

代码示例来源:origin: stackoverflow.com

public class Utility {
 public static void setListViewHeightBasedOnChildren(ListView listView) {
   ListAdapter listAdapter = listView.getAdapter();
   if (listAdapter == null) {
     // pre-condition
     return;
   }
   int totalHeight = 0;
   int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
   for (int i = 0; i < listAdapter.getCount(); i++) {
     View listItem = listAdapter.getView(i, null, listView);
     listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
     totalHeight += listItem.getMeasuredHeight();
   }
   ViewGroup.LayoutParams params = listView.getLayoutParams();
   params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
   listView.setLayoutParams(params);
   listView.requestLayout();
 }
}

代码示例来源:origin: stackoverflow.com

import android.view.View;
import android.view.ViewGroup;
import android.view.View.MeasureSpec;
import android.widget.ListAdapter;
import android.widget.ListView;

public class Utility {
  public static void setListViewHeightBasedOnChildren(ListView listView) {
    ListAdapter listAdapter = listView.getAdapter();
    if (listAdapter == null) {
      // pre-condition
      return;
    }

    int totalHeight = 0;
    int desiredWidth = MeasureSpec.makeMeasureSpec(listView.getWidth(), MeasureSpec.AT_MOST);
    for (int i = 0; i < listAdapter.getCount(); i++) {
      View listItem = listAdapter.getView(i, null, listView);
      listItem.measure(desiredWidth, MeasureSpec.UNSPECIFIED);
      totalHeight += listItem.getMeasuredHeight();
    }

    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
    listView.requestLayout();
  }
}

相关文章

ListView类方法