Android使用自定义ListView+ScrollView实现股票界面上下左右滑动

最近公司做股票相关软件,界面需求是这样的,横向无限长,可以横向滚动,而且最左侧的那一竖栏要定住,网上找了写例子,都太复杂,这里来一个简单的。上图:
Android使用自定义ListView+ScrollView实现股票界面上下左右滑动_第1张图片

一、图片有点瑕疵,不要在意细节。QAQ!自定义ScrollView,是先View的联动,需要重写onScrollChanged方法,然后对外暴露scrollTo方法,这样就可以让两个view联动,至于具体说法,可以去百度一下scrollTo的用法,上代码:

public class LinkageScrollView extends HorizontalScrollView{
    private View mView;

    public LinkageScrollView(Context context) {
        super(context);
    }

    public LinkageScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public LinkageScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        super.onScrollChanged(l, t, oldl, oldt);
        if (mView != null){
            mView.scrollTo(l,t);
        }
    }

    public void setScrollView(View view){
        mView = view;
    }
}

二、因为scrollView与ListView会有滑动冲突,需要重写onMeasure方法,上代码:

public class MyListView extends ListView{
    public MyListView(Context context) {
        super(context);
    }

    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expendSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >>2,MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expendSpec);
    }
}

三,最后就是关键的布局了,上代码:



    

    

        

        
            
        

        

        

            
                
            
        
    

    

    

        

            

            

                
            

            

            

                

                    
                
            
        
    



好了,就这么简单,其他的布局以及ListView的Adapter就不贴了,都是老司机自己领会。
附源码

你可能感兴趣的:(Android)