Java Code Examples for android.widget.ListView#getDividerHeight()
The following examples show how to use
android.widget.ListView#getDividerHeight() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ListViewHeight.java From MissZzzReader with Apache License 2.0 | 6 votes |
/** * 计算listview的高度 * @param listView * @return */ public static int setListViewHeightBasedOnChildren(final ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return 0; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); // listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } final ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); // MyApplication.getApplication().runOnUiThread(new Runnable() { // @Override // public void run() { listView.setLayoutParams(params); // } // }); return totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); }
Example 2
Source File: AboutActivity.java From pivaa with GNU General Public License v3.0 | 6 votes |
/** * Shrink listview height * @param listView * @param adapter */ public void setListViewHeightBasedOnChildren(ListView listView, AboutAdapter adapter) { int totalHeight = 0; for (int i = 0; i < adapter.getCount(); i++) { View listItem = adapter.getView(i, null, listView); listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight() + 180; Log.i("htbridge", "listItem.getMeasuredHeight() = " + listItem.getMeasuredHeight() ); } Log.i("htbridge", "totalHeight = " + totalHeight); ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (adapter.getCount() - 1)); listView.setLayoutParams(params); listView.requestLayout(); }
Example 3
Source File: CommentUtil.java From Social with Apache License 2.0 | 6 votes |
/** * 根据item设置listview高度 * */ 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); }
Example 4
Source File: MHUtils.java From MonsterHunter4UDatabase with MIT License | 6 votes |
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); if(listView.isInLayout() == false){ listView.requestLayout(); } }
Example 5
Source File: ListViewUtil.java From Social with Apache License 2.0 | 6 votes |
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); }
Example 6
Source File: ViewUtils.java From android-project-wo2b with Apache License 2.0 | 6 votes |
/** * 计算ListView的高度, 重置ListView的高度. * * @param listView */ public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; } View listItem = null; int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { 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); }
Example 7
Source File: ListViewUtils.java From BigApp_Discuz_Android with Apache License 2.0 | 6 votes |
/** * @param * @return void 返回类型 * @Title setListViewHeightBasedOnChildren * @Description 根据children高度和多少,重新设置listview的高度 */ public static void setListViewHeightBasedOnChildren(ListView listView, int attHeight) { 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)) + attHeight; listView.setLayoutParams(params); }
Example 8
Source File: ListViewUtils.java From BigApp_Discuz_Android with Apache License 2.0 | 6 votes |
/** * @param * @return int 返回类型 * @Title getListViewHeightBasedOnChildren * @Description 得到children的高度 */ public static int getListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return 0; } int totalHeight = 0; for (int i = 0; i < listAdapter.getCount(); i++) { View listItem = listAdapter.getView(i, null, listView); listItem.measure(0, 0); int itemHeight = listItem.getMeasuredHeight(); System.out.println("itemHeight itemHeight:" + itemHeight); totalHeight += itemHeight; } int height = (int) (totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)) + 0.5); return height; }
Example 9
Source File: RxTool.java From RxTools-master with Apache License 2.0 | 6 votes |
/** * 手动计算出listView的高度,但是不再具有滚动效果 * * @param listView */ public static void fixListViewHeight(ListView listView) { // 如果没有设置数据适配器,则ListView没有子项,返回。 ListAdapter listAdapter = listView.getAdapter(); int totalHeight = 0; if (listAdapter == null) { return; } for (int index = 0, len = listAdapter.getCount(); index < len; index++) { View listViewItem = listAdapter.getView(index, null, listView); // 计算子项View 的宽高 listViewItem.measure(0, 0); // 计算所有子项的高度 totalHeight += listViewItem.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); // listView.getDividerHeight()获取子项间分隔符的高度 // params.height设置ListView完全显示需要的高度 params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); }
Example 10
Source File: AccountsActivity.java From YiBo with Apache License 2.0 | 6 votes |
/** * 设置ListView的高度,只有高度固定,才不会和外层的ScrollView产生冲突。 * ScrollView内部嵌入ListView会引起ListView显示不全(只显示一行半)或无法滚动ListView。 * * @param listView */ private static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { // pre-condition return; } if (listAdapter.getCount() == 0) { listView.setVisibility(View.GONE); return; } else { listView.setVisibility(View.VISIBLE); } 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); }
Example 11
Source File: OyUtils.java From Oy with Apache License 2.0 | 6 votes |
/** * * 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 = View.MeasureSpec.makeMeasureSpec(listView.getWidth(), View.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, ViewGroup.LayoutParams.WRAP_CONTENT)); view.measure(desiredWidth, View.MeasureSpec.UNSPECIFIED); totalHeight += view.getMeasuredHeight(); } ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight + (listView.getDividerHeight() * (listAdapter.getCount() - 1)); listView.setLayoutParams(params); listView.requestLayout(); }
Example 12
Source File: ViewUtil.java From Orin with GNU General Public License v3.0 | 5 votes |
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); int topPAdding = listView.getPaddingTop(); int bottomPadding = listView.getPaddingBottom(); // Set list height. ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalItemsHeight + totalDividersHeight + topPAdding + bottomPadding; listView.setLayoutParams(params); listView.requestLayout(); return true; } else { return false; } }
Example 13
Source File: MainActivity.java From TapUnlock with Apache License 2.0 | 5 votes |
public static void updateListViewHeight(ListView myListView) { ListAdapter myListAdapter = myListView.getAdapter(); if (myListAdapter == null) return; // Get listView height int totalHeight = myListView.getPaddingTop() + myListView.getPaddingBottom(); int adapterCount = myListAdapter.getCount(); for (int i = 0; i < adapterCount; i++) { View listItem = myListAdapter.getView(i, null, myListView); if (listItem instanceof ViewGroup) { listItem.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); } listItem.measure(0, 0); totalHeight += listItem.getMeasuredHeight(); } // Change height of listView ViewGroup.LayoutParams paramsList = myListView.getLayoutParams(); paramsList.height = totalHeight + (myListView.getDividerHeight() * (adapterCount - 1)); myListView.setLayoutParams(paramsList); }
Example 14
Source File: LetvUtil.java From letv with Apache License 2.0 | 5 votes |
public static void setListViewHeightBasedOnChildren(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter != null) { 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(); } LayoutParams params = listView.getLayoutParams(); params.height = (listView.getDividerHeight() * (listAdapter.getCount() - 1)) + totalHeight; listView.setLayoutParams(params); } }
Example 15
Source File: AttitudeHelper.java From Light-Android-Launcher with GNU General Public License v2.0 | 5 votes |
private static int getTotalHeightOfListView(ListView listView) { int totalHeight = 0; ListAdapter adapter = listView.getAdapter(); for (int i = 0; i < adapter.getCount() - 1; i++) { View view = adapter.getView(i, null, listView); view.measure( View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED) ); totalHeight += view.getMeasuredHeight(); } return totalHeight + (listView.getDividerHeight() * (adapter.getCount())); }
Example 16
Source File: NearbyRecruitFragment.java From Social with Apache License 2.0 | 5 votes |
public void setListViewHeight(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); }
Example 17
Source File: UIUtils.java From SimpleSmsRemote with MIT License | 5 votes |
/** * Set ListView height dynamically based on the height of the items. * * @param listView to be resized * @see <a href="http://stackoverflow.com/questions/1778485/android-listview-display-all-available-items-without-scroll-with-static-header">stackoverflow answer</a> */ public static void SetListViewHeightBasedOnItems(ListView listView) { ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) throw new RuntimeException("an adapter must be set before list view can be resized"); 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); //get vertical padding int paddingVertical = listView.getPaddingTop() + listView.getPaddingBottom(); // Set list height. ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalItemsHeight + totalDividersHeight + paddingVertical; listView.setLayoutParams(params); listView.requestLayout(); }
Example 18
Source File: ListViewUtils.java From DevUtils with Apache License 2.0 | 5 votes |
/** * 计算 ListView 高度 * @param listView {@link ListView} * @param setParams 是否 setLayoutParams * @return ListView 高度 */ public static int calcListViewHeight(final ListView listView, final boolean setParams) { if (listView == null) return 0; try { // Adapter ListAdapter listAdapter = listView.getAdapter(); // Item 总条数 int itemCount = listAdapter.getCount(); // 没数据则直接跳过 if (itemCount == 0) return 0; // 高度 int height = 0; // 获取子项间分隔符占用的高度 int dividerHeight = listView.getDividerHeight(); // 循环绘制每个 Item 并保存 Bitmap for (int i = 0; i < itemCount; i++) { View childView = listAdapter.getView(i, null, listView); WidgetUtils.measureView(childView, listView.getWidth()); height += childView.getMeasuredHeight(); } // 追加子项间分隔符占用的高度 height += (dividerHeight * (itemCount - 1)); // 是否需要设置高度 if (setParams) { ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = height; listView.setLayoutParams(params); } return height; } catch (Exception e) { LogPrintUtils.eTag(TAG, e, "calcListViewHeight"); } return 0; }
Example 19
Source File: ArtistDetailActivity.java From Orin with GNU General Public License v3.0 | 4 votes |
public void setHeightofListViewBasedOnContent(ListView listView) { ListAdapter mAdapter = listView.getAdapter(); int totalHeight = 0; for (int i = 0; i < mAdapter.getCount(); i++) { totalHeight += getResources().getDimension(R.dimen.item_list_height); Log.w("HEIGHT" + i, String.valueOf(totalHeight)); } totalHeight = totalHeight + (listView.getDividerHeight() * (mAdapter.getCount() - 1)) + listView.getPaddingTop(); ViewGroup.LayoutParams params = listView.getLayoutParams(); params.height = totalHeight; listView.setLayoutParams(params); listView.requestLayout(); }
Example 20
Source File: CapturePictureUtils.java From DevUtils with Apache License 2.0 | 4 votes |
/** * 通过 ListView 绘制为 Bitmap * @param listView {@link ListView} * @param config {@link Bitmap.Config} * @return {@link Bitmap} */ public static Bitmap snapshotByListView(final ListView listView, final Bitmap.Config config) { if (listView == null || config == null) return null; try { // Adapter ListAdapter listAdapter = listView.getAdapter(); // Item 总条数 int itemCount = listAdapter.getCount(); // 没数据则直接跳过 if (itemCount == 0) return null; // 高度 int height = 0; // 获取子项间分隔符占用的高度 int dividerHeight = listView.getDividerHeight(); // View Bitmaps Bitmap[] bitmaps = new Bitmap[itemCount]; // 循环绘制每个 Item 并保存 Bitmap for (int i = 0; i < itemCount; i++) { View childView = listAdapter.getView(i, null, listView); WidgetUtils.measureView(childView, listView.getWidth()); bitmaps[i] = canvasBitmap(childView, config); height += childView.getMeasuredHeight(); } // 追加子项间分隔符占用的高度 height += (dividerHeight * (itemCount - 1)); int width = listView.getMeasuredWidth(); // 创建位图 Bitmap bitmap = Bitmap.createBitmap(width, height, config); Canvas canvas = new Canvas(bitmap); canvas.drawColor(BACKGROUND_COLOR); // 累加高度 int appendHeight = 0; for (int i = 0, len = bitmaps.length; i < len; i++) { Bitmap bmp = bitmaps[i]; canvas.drawBitmap(bmp, 0, appendHeight, PAINT); appendHeight += (bmp.getHeight() + dividerHeight); // 释放资源 bmp.recycle(); bmp = null; } return bitmap; } catch (Exception e) { LogPrintUtils.eTag(TAG, e, "snapshotByListView"); } return null; }