scrollBarStyle- listview滑动条调整

今天在解决问题的时候,需要设置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跟滚动条的分离