android.widget.ListAdapter.getView()方法的使用及代码示例

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

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

ListAdapter.getView介绍

暂无

代码示例

代码示例来源: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 int measureContentWidth(ListAdapter adapter) {
  int maxWidth = 0;
  int count = adapter.getCount();
  final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
  final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
  View itemView = null;
  for (int i = 0; i < count; i++) {
    itemView = adapter.getView(i, itemView, this);
    itemView.measure(widthMeasureSpec, heightMeasureSpec);
    maxWidth = Math.max(maxWidth, itemView.getMeasuredWidth());
  }
  return maxWidth;
}

代码示例来源:origin: beworker/pinned-section-listview

View pinnedView = getAdapter().getView(position, pinnedShadow.view, PinnedSectionListView.this);
pinnedView.measure(ws, hs);
pinnedView.layout(0, 0, pinnedView.getMeasuredWidth(), pinnedView.getMeasuredHeight());
mTranslateY = 0;

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

public void onShow(DialogInterface alert) {
  ListView listView = ((AlertDialog)alert).getListView();
  final ListAdapter originalAdapter = listView.getAdapter();
      return originalAdapter.getCount();
      View view = originalAdapter.getView(position, convertView, parent);
      TextView textView = (TextView)view;
      textView.setTypeface(MyFontUtil.getTypeface(MyActivity,MY_DEFAULT_FONT));

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

private static final int UNBOUNDED = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);

// To calculate the total height of all items in ListView call with items = adapter.getCount()
public static int getItemHeightofListView(ListView listView, int items) {
  ListAdapter adapter = listView.getAdapter();

  int grossElementHeight = 0;
  for (int i = 0; i < items; i++) {
    View childView = adapter.getView(i, null, listView);
    childView.measure(UNBOUNDED, UNBOUNDED);
    grossElementHeight += childView.getMeasuredHeight();
  }
  return grossElementHeight;
}

代码示例来源:origin: commonsguy/cw-omnibus

final int heightMeasureSpec =
 View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
 final int positionType = adapter.getItemViewType(i);
 itemView = adapter.getView(i, itemView, mMeasureParent);
 itemView.measure(widthMeasureSpec, heightMeasureSpec);

代码示例来源: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: arimorty/floatingsearchview

private int measureContentWidth() {
  // Menus don't tend to be long, so this is more sane than it looks.
  int maxWidth = 0;
  View itemView = null;
  int itemType = 0;
  final ListAdapter adapter = mAdapter;
  final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
  final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
  final int count = adapter.getCount();
  for (int i = 0; i < count; i++) {
    final int positionType = adapter.getItemViewType(i);
    if (positionType != itemType) {
      itemType = positionType;
      itemView = null;
    }
    if (mMeasureParent == null) {
      mMeasureParent = new FrameLayout(mContext);
    }
    itemView = adapter.getView(i, itemView, mMeasureParent);
    itemView.measure(widthMeasureSpec, heightMeasureSpec);
    final int itemWidth = itemView.getMeasuredWidth();
    if (itemWidth >= mPopupMaxWidth) {
      return mPopupMaxWidth;
    } else if (itemWidth > maxWidth) {
      maxWidth = itemWidth;
    }
  }
  return maxWidth;
}
@Override

代码示例来源: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

final int widthMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
final int heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
final int count = adapter.getCount();
for (int i = 0; i < count; i++) {
  final int positionType = adapter.getItemViewType(i);
  itemView = adapter.getView(i, itemView, mMeasureParent);
  itemView.measure(widthMeasureSpec, heightMeasureSpec);

代码示例来源: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: stackoverflow.com

public void setGridViewHeightBasedOnChildren(GridView gridView, int columns) {
    ListAdapter listAdapter = gridView.getAdapter(); 
    if (listAdapter == null) {
      // pre-condition
      return;
    }

    int totalHeight = 0;
    int items = listAdapter.getCount();
    int rows = 0;

    View listItem = listAdapter.getView(0, null, gridView);
    listItem.measure(0, 0);
    totalHeight = listItem.getMeasuredHeight();

    float x = 1;
    if( items > columns ){
      x = items/columns;
      rows = (int) (x + 1);
      totalHeight *= rows;
    }

    ViewGroup.LayoutParams params = gridView.getLayoutParams();
    params.height = totalHeight;
    gridView.setLayoutParams(params);

}

代码示例来源: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

ListAdapter adapter  = listview.getAdapter(); 
int itemscount       = adapter.getCount();
int allitemsheight   = 0;
List<Bitmap> bmps    = new ArrayList<Bitmap>();
  View childView      = adapter.getView(i, null, listview);
  childView.measure(MeasureSpec.makeMeasureSpec(listview.getWidth(), MeasureSpec.EXACTLY), 
      MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
  childView.layout(0, 0, childView.getMeasuredWidth(), childView.getMeasuredHeight());
  childView.setDrawingCacheEnabled(true);
  childView.buildDrawingCache();
  bmps.add(childView.getDrawingCache());
  allitemsheight+=childView.getMeasuredHeight();

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

if (listAdapter != null && !listAdapter.isEmpty()) {
  int listPosition = 0;
  for (listPosition = 0; listPosition < listAdapter.getCount()
      && listPosition < MAXIMUM_LIST_ITEMS_VIEWABLE; listPosition++) {
    View listItem = listAdapter.getView(listPosition, null, this);
          LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
    listItem.measure(widthMeasureSpec, heightMeasureSpec);
    newHeight += listItem.getMeasuredHeight();

代码示例来源: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();
}

相关文章