554325746@qq.com
2019-08-07 2539f53391765abb74b6fe63f46e5a2c701e950f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.basic.security.widget.hlistview;
 
import android.util.Log;
import android.view.View;
 
import com.basic.security.widget.hlistview.v14.ViewHelper14;
import com.basic.security.widget.hlistview.v16.ViewHelper16;
 
public class ViewHelperFactory {
 
    private static final String LOG_TAG = "ViewHelper";
    
    public static abstract class ViewHelper {
 
        
        protected View view;
 
        protected ViewHelper( View view ) {
            this.view = view;
        }
 
        public abstract void postOnAnimation( Runnable action );
        public abstract void setScrollX( int value );
        public abstract boolean isHardwareAccelerated();
    }
 
    public static class ViewHelperDefault extends ViewHelper {
        
        public ViewHelperDefault( View view ) {
            super( view );
        }
 
        @Override
        public void postOnAnimation( Runnable action ) {
            view.post( action );
        }
 
        @Override
        public void setScrollX( int value ) {
            Log.d( LOG_TAG, "setScrollX: " + value );
            view.scrollTo( value, view.getScrollY() );
        }
 
        @Override
        public boolean isHardwareAccelerated() {
            return false;
        }
    }
 
    public static final ViewHelper create( View view ) {
        final int version = android.os.Build.VERSION.SDK_INT;
 
        if ( version >= 16 ) {
            // jelly bean
            return new ViewHelper16( view );
        } else if ( version >= 14 ) {
            // ice cream sandwich
            return new ViewHelper14( view );
        } else {
            // fallback
            return new ViewHelperDefault( view );
        }
    }
 
}