2013-02-28 175 views
0

我正在處理我的圓形列表視圖。我實現了幾乎所有的功能,但是我遇到了一些問題。當我的活動啓動我的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實在不好意思

回答

0

則應該在開始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