I have several samsung devices (GT-I9192/4.2.2, GT-I9295/4.2.2 etc) for testing purposes and all of it wont show fading edges for HorisontalScrollView. All other smatrphones like HTC, Motorola, Meizu and so on (mostly aos 4.x and several are 2.3.5) shows fading edges well.
Since in api14 new property was added android:requiresFadingEdge and it has NO code alternative (at least I didn't found it) Im using the following layout (this scroll used for tabs scrolling):

<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/tabs_horisontal_scroll_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:fadingEdge="horizontal"
    android:fadingEdgeLength="32dp"
    android:fillViewport="true"
    android:layerType="software" //was thinking it might help but it doesn't
    android:requiresFadingEdge="horizontal"
    android:scrollbarAlwaysDrawHorizontalTrack="true"
    android:scrollbars="none" />

Like I'd said everything works fine on any smartphone but not on samsung ones. Actually samsung devices does draw the fadingEdge and it looks the same on all samsung devices BUT it looks like its 2-3px of width max. So I'd noticed that it draws it but not 32dp and it ignores everything about FadingEdge settings. Probably the only turning off is working well.
So what could be the issue?

没有正确的解决方案

其他提示

Try using the android:overScrollMode attribute.

Just add

android:overScrollMode="always"

to your HorizontalScrollView.

android:overScrollMode can have three values: "always", "never", "ifContentScrolls".

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top