今天在解決問題的時候,需要設置listview滾動條,使listview的內容不能被滾動條覆蓋
后來發現網上提到一個 ScrollView 屬性。ScrollView中ScrollBar的style
該屬性可以通過xml文件配置如
android:scrollbarStyle="insideInset"
也可以通過java代碼配置:
findViewById(R.id.xx).setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
大致可以設置4個屬性:
1>outsideInset : 該ScrollBar顯示在視圖(view)的邊緣,增加了view的padding. 如果可能的話,該ScrollBar僅僅覆蓋這個view的背景.
2>outsideOverlay : 該ScrollBar顯示在視圖(view)的邊緣,不增加view的padding,該ScrollBar將被半透明覆蓋
3>insideInset :該ScrollBar顯示在padding區域里面,增加了控件的padding區域,該ScrollBar不會和視圖的內容重疊.
4>insideOverlay : 該ScrollBar顯示在內容區域里面,不會增加了控件的padding區域,該ScrollBar以半透明的樣式覆蓋在視圖(view)的內容上.
代碼中實現的方法為
import android.widget.ScrollView; listView.setScrollBarStyle(ScrollView.SCROLLBARS_OUTSIDE_OVERLAY); listView.setScrollBarStyle(ScrollView.SCROLLBARS_OUTSIDE_INSET); listView.setScrollBarStyle(ScrollView.SCROLLBARS_INSIDE_INSET); listView.setScrollBarStyle(ScrollView.SCROLLBARS_INSIDE_OVERLAY);
還要注意一點,就是這個滾動條必須配合padding使用,比如,如果你不加padding,那么這個滾動條絕不會超過listview而到外面去
如果你增加了padding,那么這個滾動條還是會在listview邊緣,而不會隨着item移動,這樣就實現了item跟滾動條的分離
