zoukankan      html  css  js  c++  java
  • Android双列滑动表格(双表头不动)

    效果



    使用方法


    package com.cd.slidetest;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.graphics.Color;
    import android.view.GestureDetector;
    import android.view.Menu;
    import android.view.MotionEvent;
    import android.view.GestureDetector.SimpleOnGestureListener;
    import android.widget.LinearLayout;
    import android.widget.LinearLayout.LayoutParams;
    import android.widget.ScrollView;
    
    public class MainActivity extends Activity implements OnScrollChangedListener{
    
    	private GestureDetector mGestureDetector = null;
    	private HScrollView mItemRoom = null;
    	private ScrollView mVertical = null;
    	private HScrollView mTimeItem = null;
    	private LinearLayout mContain = null;
    	@SuppressWarnings("deprecation")
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		mGestureDetector = new GestureDetector(mGestureListener);
    		makeItems();
    		setContentView(mContain);
    		
    	}
    
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    	
    	private void makeItems(){
    		mItemRoom = new HScrollView(this, mGestureDetector);
    		mItemRoom.setListener(this);
    		LinearLayout VLayout = new LinearLayout(this);
    		VLayout.setOrientation(LinearLayout.VERTICAL);
    		
    		for(int i = 0;i < 20;i++){
    			LinearLayout HLayout = new LinearLayout(this);
    			for(int j = 0;j < 10;j++){
    				TextItem item = new TextItem(this);
    				item.setText(i*10+j + "vh");
    				item.setBackgroundColor(Color.LTGRAY);
    				LinearLayout.LayoutParams params = new LayoutParams(100,70);
    				HLayout.addView(item, params);
    			}
    			VLayout.addView(HLayout);
    		}
    		
    		mItemRoom.addView(VLayout);
    		
    		mVertical = new ScrollView(this);
    		LinearLayout hlayout = new LinearLayout(this);
    		LinearLayout vlayout = new LinearLayout(this);
    		vlayout.setOrientation(LinearLayout.VERTICAL);
    		for(int i = 0;i < 20;i++){
    			TextItem item = new TextItem(this);
    			item.setBackgroundColor(Color.BLUE);
    			item.setText(i + "v");
    			LinearLayout.LayoutParams params = new LayoutParams(100,70);
    			vlayout.addView(item, params);
    		}
    		hlayout.addView(vlayout);
    		hlayout.addView(mItemRoom);
    		
    		mVertical.addView(hlayout);
    		
    		LinearLayout tophlayout = new LinearLayout(this);
    		mTimeItem = new HScrollView(this, mGestureDetector);
    		mTimeItem.setListener(this);
    		LinearLayout layout = new LinearLayout(this);
    		for(int i = 0;i < 10;i++){
    			TextItem item = new TextItem(this);
    			item.setText(i + "h");
    			item.setBackgroundColor(Color.GREEN);
    			LinearLayout.LayoutParams params = new LayoutParams(100,70);
    			layout.addView(item,params);
    		}
    		mTimeItem.addView(layout);
    		TextItem item = new TextItem(this);
    		item.setBackgroundColor(Color.RED);
    		LinearLayout.LayoutParams params = new LayoutParams(100,70);
    		tophlayout.addView(item,params);
    		tophlayout.addView(mTimeItem);
    		
    		mContain = new LinearLayout(this);
    		mContain.setOrientation(LinearLayout.VERTICAL);
    		mContain.addView(tophlayout);
    		mContain.addView(mVertical);
    	}
    
    	
    	private SimpleOnGestureListener mGestureListener = new SimpleOnGestureListener(){
    
    		@Override
    		public boolean onScroll(MotionEvent e1, MotionEvent e2,
    				float distanceX, float distanceY) {
    			if(Math.abs(distanceX) > Math.abs(distanceY)) {
                    return true;
    			}
    			return false;
    		}
    		
    	};
    	@Override
    	public void onScrollChanged(HScrollView scroll, int x, int y, int oldx,
    			int oldy) {
    		if(scroll == mItemRoom){
    			mTimeItem.scrollTo(x, y);
    		}else if(scroll == mTimeItem){
    			mItemRoom.scrollTo(x, y);
    		}
    			
    	}
    }
    

    下载地址


    http://download.csdn.net/detail/u010785585/8062787


  • 相关阅读:
    面试常见问题(2)-数据同步
    面试常见问题-SQL
    4TH PROFILE SOURCE IN SHAREPOINT 2013′S PEOPLE PICKER
    InfoPath代码切换视图
    Winform 的小技巧
    Sharepoint Workflow模板激活
    Hadoop介绍
    InfoPath的常见处理办法
    InfoPath的常见问题---连接外部数据源提示
    flask表单操作
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7206832.html
Copyright © 2011-2022 走看看