最近在做一个项目,要求实现上下能滚动,每项能左右滚动,最后效果是实现了,可数据的通信可能有点麻烦,暂时又被砍掉了,先放上来存档,转载请注明出处,谢谢

代码如下

public class GroupActivity extends Activity {

private List<TeamBean> gbList;
//    private MyListAdapter adapter;
    private ItemClickEvent listener;
//    private MyHandler handler;
    private GridView[] gridvs ;

//
    private LinearLayout ll_main;
    private ScrollView scll ;
    private LinearLayout scll_sub_ll;
    private HorizontalScrollView hls;
    private LinearLayout hls_sub_ll;
    private GridView gv ;
    private LinearLayout.LayoutParams ll_pmm;
    private LinearLayout.LayoutParams ll_pmw;
    private LinearLayout.LayoutParams ll_pww;
    private LinearLayout.LayoutParams ll_head_wh;
    private int headViewW = 0, headViewH = 0;
    
    private TextView tv_type;
    private View headView;
    private LayoutInflater flater;
    private Button bt_back, bt_right;
    private TextView top_title;
    private MyListAdapter[] myAdaps;
    
    
    Handler hand = new Handler(){
        public void handleMessage(Message msg) {
            switch (msg.what) {
            case 1:
                Log.i("AAA","case1 "+msg.what);
                if(null == gbList || gbList.size() < 0){
                    return;
                }
                
                init();
                
                break;
                
            case 2:
                setContentView(ll_main);
                break;
            default:
                break;
            }
        };
    };
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
//        setContentView(R.layout.main);
        
        new Thread() {
            @SuppressLint("NewApi")
            public void run() {
                gbList = new ArrayList<TeamBean>();
                for (int i = 0; i < 10; i++) {
                    
                    TeamBean item = new TeamBean("abc" + i, "123456"
                            + i);
                    Log.i("AAA","item = "+item);
                    gbList.add(item);
                }
                Message msg = Message.obtain();
                msg.what = 1;
                hand.sendMessage(msg);
            }
        }.start();
        
    }
    private void init(){
        headView = getLayoutInflater().inflate(R.layout.dingbujiemian, null);
        headView.setBackgroundResource(R.drawable.top_bg);
        
        bt_back = (Button) headView.findViewById(R.id.zuobiananniu);
        bt_back.setVisibility(View.VISIBLE);
        bt_back.setBackgroundResource(R.color.transparent);
        bt_back.setText(getResources().getString(R.string.fanhui));
        bt_back.setOnClickListener(new OnClickListener() {
            
            public void onClick(View v) {
                // TODO Auto-generated method stub
                finish();
            }
        });
        bt_right = (Button) headView.findViewById(R.id.youbiananniu);
        bt_right.setVisibility(View.INVISIBLE);
        top_title = (TextView) headView.findViewById(R.id.zhongjianzifu);
        top_title.setVisibility(View.INVISIBLE);
        
        
        ll_pmm = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        ll_pmw = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        ll_pww = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        
        
//         int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
//            int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
//            headView.measure(w, h);
//            headViewW =headView.getMeasuredWidth();
//            headViewH =headView.getMeasuredHeight();
//            ll_head_wh = new LinearLayout.LayoutParams(headViewW, headViewH);
//        headView.setLayoutParams(ll_head_wh);
        
        
        ll_main = new LinearLayout(this);
        ll_main.setOrientation(LinearLayout.VERTICAL);
        ll_main.setBackgroundColor(Color.WHITE);
        ll_main.setLayoutParams(ll_pmm);
        
        ll_main.addView(headView);
        
        scll = new ScrollView(this);
        scll.setLayoutParams(ll_pmm);
        
        scll_sub_ll = new LinearLayout(this);
        scll_sub_ll.setOrientation(LinearLayout.VERTICAL);
        scll_sub_ll.setLayoutParams(ll_pmm);
        
        
        int arrs[] = new int[15];
        myAdaps = new MyListAdapter[arrs.length];
        
        for (int i = 0; i < arrs.length; i++) {
            hls = new HorizontalScrollView(this);
            hls.setLayoutParams(ll_pmw);
            hls.setBackgroundColor(Color.GRAY);
            hls.setHorizontalScrollBarEnabled(false);
            
            
            hls_sub_ll = new LinearLayout(this);
            hls_sub_ll.setOrientation(LinearLayout.HORIZONTAL);
            hls_sub_ll.setLayoutParams(ll_pmw);
            
            gv = new GridView(this);
            gv.setLayoutParams(ll_pmw);
            
            LayoutParams params = new LayoutParams(gbList.size()
                    *(120+6) , LayoutParams.WRAP_CONTENT);
            
            gv.setLayoutParams(params);
            gv.setColumnWidth(120);
            gv.setHorizontalSpacing(6);
            /*gv.setStretchMode(gv.NO_STRETCH);*/
            gv.setNumColumns(gbList.size());
            
            myAdaps[i] = new MyListAdapter(GroupActivity.this);
            listener = new ItemClickEvent();
            if(i == arrs.length - 1){
                
            }else{
                gv.setAdapter(myAdaps[i]);
                gv.setOnItemClickListener(listener);
            }
            
            
            hls_sub_ll.addView(gv);
            hls.addView(hls_sub_ll);
            
            tv_type = new TextView(this);
            tv_type.setTextSize(22);
            tv_type.setTextColor(Color.BLACK);
            if(i == arrs.length - 1){
                tv_type.setText("选中的好友 ");
            }else{
                tv_type.setText("朋友 "+i);
            }
            scll_sub_ll.addView(tv_type);
            scll_sub_ll.addView(hls);
            
        }
        scll.addView(scll_sub_ll);
        ll_main.addView(scll);
        Message msg = Message.obtain();
        msg.what = 2;
        hand.sendMessage(msg);
    }
    private class MyListAdapter extends BaseAdapter {
        private final String TAG = "MyListAdapter";
        private LayoutInflater mInflater;
        private final Context context;

public MyListAdapter(Context context) {
            this.context = context;
            mInflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }

public int getCount() {
            Log.i("AAA","gbList.size() = "+gbList.size());
            return gbList.size();
            
        }

public Object getItem(int position) {
            return gbList.get(position);
        }

public long getItemId(int position) {
            return position;
        }

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
        @SuppressLint("NewApi")
        public View getView(int position, View convertView, ViewGroup parent) {
            Log.i("AAA","position = "+position);
            TeamBean item = gbList.get(position);
            Log.i("AAA","getView() , item = "+item);
            CellHolder cellHolder;
            if (convertView == null) {
                cellHolder = new CellHolder();
                convertView = mInflater.inflate(R.layout.team_item, null);
                cellHolder.ivIcon = (ImageView) convertView
                        .findViewById(R.id.ivIcon);
                cellHolder.name = (TextView) convertView
                        .findViewById(R.id.name);
                convertView.setTag(cellHolder);
            } else {
                cellHolder = (CellHolder) convertView.getTag();
            }
            cellHolder.ivIcon.setImageResource(R.drawable.icos5);
            cellHolder.name.setText(item.getName());
            cellHolder.name.setTextSize(12);
            return convertView;
        }
    }

private class CellHolder {
        ImageView ivIcon;
        TextView name;
    }

private class ItemClickEvent implements OnItemClickListener {
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            Log.i("item","parent = "+parent+", view = "+view+", position = "+position);
            
        }

}
}

左右上下都能滚动的效果相关推荐

  1. 重新计算ListView的高度,解决ScrollView和ListView两个View都有滚动的效果,在嵌套使用时解决冲突的问题

    public static void setListViewHeight(ListView listView) {// 获取ListView对应的AdapterListAdapter listAdap ...

  2. qt同时两个动画执行_Qt实现数字滚动动画效果

    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bclshuai/p/11380657.html Qt实现数字滚动动画效果 3. ...

  3. ScrollMagic – 酷毙了!超炫的页面滚动交互效果

    ScrollMagic 是一款 jQuery 插件,它让你可以像使用进度条一样使用滚动条.如果你想在特定的滚动位置开始一个动画,并且让动画同步滚动条的动作,或者把元素粘在一个特定的滚动位置,那么这款插 ...

  4. html 字幕飘动效果,html 滚动字幕 制作滚动字幕效果 参数

    制作滚动字幕效果:marquee标签 如下:<MARQUEE direction=up height=146 οnmοuseοut=start() οnmοuseοver=stop() scro ...

  5. android 半圆滚动菜单,自定义控件:实现半圆滚动菜单效果

    前言 本自定义控件参考自鸿洋大神的自定义控件,基于原来的控件效果进行修改,着重实现了以下效果:位置自动修正以及滑动结束的回调.我们先来看看效果图: 上面的图片是一个ImageView,与控件无关,是为 ...

  6. html怎么制作图片滚动文字效果,新手请看:网店店铺里的滚动文字效果代码是如何制作的...

    下面第5点是原始内容,我先试验了多行文字滚动,一通则百通,会一个了,那其它的你们可以自己试试. 多行文本向上滚动无限次 <marquee scrollamount="2" d ...

  7. matlab车轮滚动动画,Fireworks动画教程:简单制作轮子滚动动画效果

    本教程是向大家介绍利用Fireworks简单制作轮子滚动动画效果,方法很简单,主要想通过这一实例向大家介绍fw mx如何让我们的web design变得更easy,希望大家通过本篇教程能有收获! 一直 ...

  8. 使用aggird组件实现下滑请求分页从而实现无限滚动的效果

    aggird组件是一款强大的表格展示组件,无论后端返回多少数据,它可以只展示用户看到的条数,这样就提升了流畅度提升了用户体验. 但是当数据过多时,后端一次性返回所有数据会使得接口请求时间变慢,从而产生 ...

  9. PPT也能制作滚动字幕,原来制作滚动字幕效果这么简单

    电影结束的时候我们经常会看到滚动字幕效果,里面播放着演职人员的名单,是不是感觉很炫酷?每次小编看到都想自己尝试制作一个这样的效果:可能很多人会觉得这么酷的效果制作起来肯定有难度,其实滚动字幕的制作并不 ...

最新文章

  1. Docker核心技术之网络管理
  2. JS获取URL中参数值(QueryString)的4种方法分享
  3. 文本纠错与BERT的最新结合,Soft-Masked BERT
  4. 【原创】日志输出到串口设备导致的问题
  5. 【c++】重载操作符
  6. linux 回环接口实现,Linux回环接口-----(loop-back/loopback)
  7. LOL手游超燃测试好评如潮,没拿到资格不用急,期待一手不删档
  8. 有了商城源码如何部署到本地服务器_怎么将本地做好的网站部署到服务器上?...
  9. C++中的std::lock_guard和std::unique_lock
  10. mysql创建bit类型报错_MySQL入门(三)——MySQL数据类型
  11. 剑指offer——面试题34:丑数
  12. 数学建模-二胎政策对中国人口的影响
  13. GEE批量提取站点DN值—以Landsat 8 C2 SR 产品为例
  14. 电脑间通过串口传输数据【串口练习】
  15. 用数据分析教你如何追男神
  16. SQL计算每天的期初、入库、出库、结存数
  17. MEncoder的基础用法—6.5. 编码为MPEG格式
  18. android 微信 耗电吗,微信太耗电了怎么办?微信耗电的两种解决方案
  19. C++ explicit类型
  20. java 编程联系_《JAVA程序设计》结对编程联系_四则运算(第二周:整体性总结)...

热门文章

  1. 【每日一题】剑指 Offer 10- I. 斐波那契数列
  2. LeetCode-笔记-131. 分割回文串
  3. java 商城 jfinal,Jfinal开发农副产品电子商城系统,完整前后台系统
  4. AFNetworking 源代码分析
  5. inner class java_Java Inner Class
  6. 安全策略_实操教程丨使用Pod安全策略强化K8S安全
  7. ace unlock 苹果解锁_【曝光】苹果iPhone最新专利:全屏指纹解锁,保留人脸识别...
  8. 应用层级时空记忆模型(HTM)实现对时序数据的异常检测
  9. wordcount代码_Scala小案例之wordcount
  10. python中sorted函数逆序_Python中sorted函数的用法(转)