0

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

        }
    }

真的对不起我的英语

4

1 回答 1

0

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

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

于 2013-02-28T10:56:41.103 回答