我正在处理我的循环列表视图。我实现了几乎所有的功能,但我有一些问题。当我的活动开始时,我的listView看起来像:https://dl.dropbox.com/u/44444463/Screenshot_2013-02-28-14-37-17.png
但这不对。它看起来应该是:https://dl.dropbox.com/u/44444463/Screenshot_2013-02-28-14-37-44.png
这是我的问题。 活动开始时看起来像第一个截图。如果我触摸listView中的任何元素,或滚动它(如果有很多元素),它就像在screenshot2中一样。正是我需要的。 如何在活动开始时拍摄scrennshot 2中的图像?
我在listView的OnScrollListener中覆盖了方法@Override public void onScroll(..),其中我只是所有填充:
// int x = 30;
for (int i = 0; i < visibleItemCount; ++i)
{
View v = listView.getChildAt(i);
if (v != null)
{
LinearLayout rl = (LinearLayout) v.findViewById(R.id.rl);
float sin = (float) (v.getTop() + v.getHeight() / 2 - centerOfCircle) / radius;
double angle = Math.asin(sin);
int x = (int) (-dXRow + radius * Math.cos(angle));
if (x < 0)
x = 0;
Log.d("MN", "setPadding: " + x);
rl.setPadding(x, 0, 0, 0);
}
}
真的很抱歉我的英语
答案 0 :(得分:0)
您应该在listView的适配器的getView()方法中设置起始pedding。然后根据需要在Scroll()上重新计算它们。
当listView出现时,只有当你滚动它时才会调用OnScroll方法。