3

由于 Android 有不同的布局大小,所以行数可以在其中显示ListView是可变的,理想情况下,我们需要执行 API 调用,如..

http://www.example.com/get_product?count=N&..

其中N= 可以在给定的 ListView+ 10 个项目缓冲区中显示的行数以实现屏幕外滚动效果。

在应用程序中定义价值的最佳方法是N什么?

4

4 回答 4

1

尝试这个:

ListView list = (ListView) findViewById(R.id.list) //R.id.list will be your listview id in the layout    
int n = Double.intValue(list.getHeight()/list.getChildAt(1).getHeight())

如果它不起作用,因为它需要首先创建列表来获得一个孩子,并且你有 listItem 的 dp 高度(如果你使用自定义布局可能),你可以使用

ListView list = (ListView) findViewById(R.id.list) //R.id.list will be your listview id in the layout    
Resources r = getResources();
int px = Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, !!!YOUR LISTITEM HEIGHT IN DP!!!, r.getDisplayMetrics())); //Convert DP to actual size in pixels (rounded)
int n = Double.intValue(list.getHeight()/px)
于 2012-09-16T18:29:45.943 回答
0

使用方法 listView.setOnScrollListener(OnScrollListener)将onScrollListener设置为 listview。@param visibleItemCount of method onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 是您要查找的内容。

于 2012-09-16T18:42:56.823 回答
0

您可以致电getListView().getChildCount()以获取可见项目的数量。虽然这只能在您的 ListView 显示后调用。所以我不确定当您尝试获取项目数量时是否会在第一次尝试时得到这个。

于 2012-09-16T19:37:26.350 回答
0

如果您使用像 BaseAdapter 或 ArrayAdapter 这样的自定义适配器,那么getCount()将为您提供要在 ListView 中膨胀的 View 数量。

这会给你行数

getCount()是在方法之前被调用的getView(),因为getCount()只告诉了要膨胀多少视图。

于 2012-09-16T18:48:37.830 回答