圆形listview android

时间:2013-02-28 10:53:22

标签: android listview

我正在处理我的循环列表视图。我实现了几乎所有的功能,但我有一些问题。当我的活动开始时,我的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);

        }
    }

真的很抱歉我的英语

1 个答案:

答案 0 :(得分:0)

您应该在listView的适配器的getView()方法中设置起始pedding。然后根据需要在Scroll()上重新计算它们。

当listView出现时,只有当你滚动它时才会调用OnScroll方法。