【发布时间】:2017-04-05 11:38:13
【问题描述】:
我正在尝试获取列表视图的最中心元素视图位置。
public void getPos(final ListView listView) {
int firstPos = listView.getFirstVisiblePosition();
int lastPos = listView.getLastVisiblePosition();
int count = lastPos - firstPos;
int viewPosition = (count - ((int) count / 2));
//int viewPosition = (count - ((int) count / 2)+1);
}
还尝试了屏幕 x,y
Display display = getWindowManager().getDefaultDisplay();
final Point size = new Point();
display.getSize(size);
float height = size.y;
float centerY=height/2;
listView.setOnScrollListener(new AbsListView.OnScrollListener() {
public void onScroll(final AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO Auto-generated method stub
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
// Log.i("Yes1", "Here");
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
if (scrollState == SCROLL_STATE_IDLE) {
final ListView listView = (ListView) view;
for (int i = 0; i < listView.getLastVisiblePosition(); i++) {
final View firstView = listView.getChildAt(i);
if (firstView != null) {
Log.i("Height", centerY + " | " + firstView.getY());
}
}
}
}
}
});
我尝试了上述方法,但在上下滚动时没有得到准确的结果。任何人都有解决方案如何在列表视图中获得大多数中心视图位置?
【问题讨论】: