如何在不使用OnItemClickListener的情况下获取ListView的项高度?

时间:2013-07-24 08:56:01

标签: android listview android-listview

我使用这段代码垂直居中ListView的所选项目;

@Override
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
    m_listView.smoothScrollToPositionFromTop(position, (m_listView.getHeight() - v.getHeight()) / 2, 100);
}

这没有问题。问题是我无法将默认选定项目居中,因为我无法获得ListView高度和项目高度。

我尝试了什么;

  • 使用Inflater创建视图(返回0作为高度)
  • 在默认选定项目上运行performClick()方法(不执行任何操作,不会抛出异常)

那我该怎么办?

注意:物品高度相等。

1 个答案:

答案 0 :(得分:1)

拿这段代码:

//
int totalHeight = 0;//it is the ListView Height
for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
    View listItem = listAdapter.getView(i, null, listView);
    listItem.measure(0, 0);
    int list_child_item_height = listItem.getMeasuredHeight()+listView.getDividerHeight();//item height
    totalHeight += list_child_item_height; //
}