我使用这段代码垂直居中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()
方法(不执行任何操作,不会抛出异常)那我该怎么办?
注意:物品高度相等。
答案 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; //
}