圆形列表视图android

问题描述:

我正在处理我的圆形列表视图。我实现了几乎所有的功能,但是我遇到了一些问题。当我的活动启动我的listView看起来像:https://dl.dropbox.com/u/44444463/Screenshot_2013-02-28-14-37-17.png圆形列表视图android

但它是不正确的。它应该看起来像:https://dl.dropbox.com/u/44444463/Screenshot_2013-02-28-14-37-44.png

这是我的问题。 当活动在第一个屏幕截图中看起来像。如果我触摸listView中的任何元素,或者滚动它(如果有很多元素),它就像screenshot2中的一样。正是我需要的。 如何在活动开始时拍摄像scrennshot 2中的图像?

我overrited方法@覆盖公共无效onScroll(..)在我的ListView OnScrollListener,其中i aplly所有补白:

// 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); 

     } 
    } 

我Engish实在不好意思

则应该在开始peddings您的listView的适配器的getView()方法。然后根据需要重新计算onScroll()。

仅当您滚动ListView时才会调用OnScroll方法。

+0

其启动的ater活动开始。它的工作有点奇怪。例如,如果我申请固定填充80,它会像这样looke:https://dl.dropbox.com/u/44444463/Screenshot_2013-02-28-15-20-47.png 所以我需要重建我排列视图? invalidete()不起作用 – Tooto 2013-02-28 11:21:54

+0

为什么不在getView()方法中设置所需的填充或边距? – TpoM6oH 2013-03-02 12:47:07

+0

我不知道如何获得顶部的距离。可能吗? – Tooto 2013-03-04 07:37:44