2011-12-10 73 views
0
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/settings_unpressed" android:state_focused="false" android:state_pressed="false" android:state_selected="false"/> 
    <item android:drawable="@drawable/settings_unpressed" android:state_focused="false" android:state_pressed="false" android:state_selected="true"/> 
    <!-- Focused states --> 
    <item android:drawable="@drawable/settings_unpressed" android:state_focused="true" android:state_pressed="false" android:state_selected="false"/> 
    <item android:drawable="@drawable/settings_unpressed" android:state_pressed="false" android:state_selected="true"/> 

    <item android:drawable="@drawable/list_selector_pressed" android:state_pressed="true"/> 
     <item android:drawable="@android:color/transparent"/> 

</selector> 

我有一個listView,它有一個圓角,當我嘗試滾動我的listView的邊界變得銳利(像矩形)。任何人都可以告訴我,當我們滾動listView時,怎麼調用狀態。我在上面使用代碼但沒有結果,也許我應該有另一個狀態?listview狀態undefined

回答

1

我找到了解決方案。 設置android:cacheColorHint="#00000000"android:scrollingCache="false"就是這樣。

0

這是不可能的。您需要爲頂級項目,中間項目,底部項目以及列表中只有1個項目設置不同的可繪製資源。 然後在您的自定義適配器,您需要更改您的getView在這樣的事情:

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    //... 

    if (position == 0 && entry_list.size() == 1) { 
      view.setBackgroundResource(R.drawable.selector_rounded_corner); 
     } else if (position == 0) { 
      view.setBackgroundResource(R.drawable.selector_rounded_corner_top); 
     } else if (position == entry_list.size() - 1) { 
      view.setBackgroundResource(R.drawable.selector_rounded_corner_bottom); 
     } else { 
      view.setBackgroundResource(R.drawable.selector_middle); 
     } 

     //... 
    } 

檢查這個tutorial,很容易也很出色。

0

您可以將listView的背景設置爲圓角的可繪製表格,然後爲每個行項留下一些邊距。這整個內容的列表視圖位於一個圓角視圖