1.需求:当text显示不全时显示scrollbar,并且在不同的focus状态scrollbar的颜色不同,先看下面的两张图片。
2.问题分解
- 如何显示scrollbar,并且显示不全要一直显示,而不是focus时显示
- 如何自定义scrollbar
- 每次进入该view保证scrollbar在顶部
3.问题解决
问题一:显示scrollbar
设置三个属性:
android:scrollbars="vertical" 表示垂直显示
android:scrollbarStyle="outsideInset" 显示在字符外面,默认的话,会出现压边的情况
android:fadeScrollbars="false" 一直显示
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fadeScrollbars="false"
android:scrollbarStyle="outsideInset"
android:scrollbars="vertical"/>
问题二:如何自定义scrollbar
使用android:scrollbarThumbVertical="@drawable/text_scroll_bar"
这个属性是自定义的scrollbar,并且在drawable时写入selector来控制显示
问题三:每次进入该view保证scrollbar在顶部
这个也比较简单,因为是复用的item,每次进入可能沿用上次scrollbar的状态,这里设置为每次进入滑动到头部即可。如下所示:
mProgramDetail.scrollTo(0, 0);