Ste*_*oen 10 android android-widget android-layout android-listview
我有一个ListView自定义样式,基本上看起来就像Holo,但有黄色的口音而不是蓝色.
当我滚动到列表的底部或顶部时,我得到了不合适的蓝色.我为overscroll_glow.png和制作了自定义绘图overscroll_edge.png,但我不知道如何使用它们.
我怎样才能让我ListView使用这些drawable而不是系统的drawable?
请问OverScroller类的帮助?
你可以使用类似反射的解决方案来破解你改变这种发光颜色的方法:
int glowDrawableId = context.getResources().getIdentifier("overscroll_glow", "drawable", "android");
Drawable androidGlow = context.getResources().getDrawable(glowDrawableId);
androidGlow.setColorFilter(brandColor, PorterDuff.Mode.MULTIPLY);
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,这似乎是一个很好的解决方案,至少在Google添加用于更改颜色(或标记颜色)的API之前:http://evendanan.net/android/branding/2013/12/09/品牌边缘效应/
只需使用此库.我只是在没有过度滚动的设备(HTC One X/Sense 4.5)上在横向菜单中包装上下文时遇到问题.奇迹般有效!
https://github.com/AndroidAlliance/EdgeEffectOverride
试过这个吗?setOverscrollFooter(可绘制)?
更新1:
哎呀。没关系。您可能已经看过这个讨论。
发光行为包含在EdgeEffect 类中。setOverScrollMode(OVER_SCROLL_NEVER)您可以通过调用 ListView 然后滚动您自己的 EdgeEffect 类(目前我无法了解其详细信息)来禁用默认边缘效果。
更新2:
哎哟。对 AbsListView 中创建的 EdgeEffect 对象的调用深埋在滚动逻辑中。可能会很难。一个简单的修复方法是向 Android 团队请求setEdgeEffect(EdgeEffect)AbsListView 中的方法...
| 归档时间: |
|
| 查看次数: |
13055 次 |
| 最近记录: |