package com.baidu.mylistscroll;

import java.util.ArrayList;
import java.util.List;

import com.baidu.adapter.MyAdapter;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.util.AttributeSet;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.ScrollView;

public class MainActivity extends Activity {
    private ListView lv;
    private List<String> list;
    private ScrollView scrollView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = new ArrayList<String>();
        init();
    }
    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        
        super.onWindowFocusChanged(hasFocus);
        setListViewHeightBasedOnChildren(lv);
    }
    private void init() {
        //找到相应的控件
        lv = (ListView) findViewById(R.id.lv);
        scrollView = (ScrollView) findViewById(R.id.ss);
        getData();
    }
    private void getData() {
        for(int i=0;i<40;i++){
            list.add("第"+i+"条目");
        }
        MyAdapter adapter=new MyAdapter(MainActivity.this,list);
        lv.setAdapter(adapter);
        lv.setOnTouchListener(new View.OnTouchListener() {  
            
            @Override  
            public boolean onTouch(View v, MotionEvent event) {  
                if(event.getAction() == MotionEvent.ACTION_UP){  
                    scrollView.requestDisallowInterceptTouchEvent(false);  
                }else{  
                    scrollView.requestDisallowInterceptTouchEvent(true);  
                }  
                return false;  
            }  
        });  
    }
//设置定义高度的方法
    private void setListViewHeightBasedOnChildren(ListView listView) {
        ListAdapter listAdapter = listView.getAdapter();
        if (listAdapter == null) {
        return;
        }
        int totalHeight = 0;
        for (int i = 0; i < listAdapter.getCount(); i++) {
        View listItem = listAdapter.getView(i, null, listView);
        listItem.measure(0, 0);
        totalHeight += listItem.getMeasuredHeight();
        }
        ViewGroup.LayoutParams params = listView.getLayoutParams();
        params.height = 600/*totalHeight
        + (listView.getDividerHeight() * (listAdapter.getCount() - 1))*/;
        listView.setLayoutParams(params);
    }

}

最新文章

  1. __definedGetter\Setter__的一些想法
  2. MySQL创建数据库并赋予权限
  3. 怎么在ZBrush中渲染漫画风格的插画
  4. 省常中模拟 Test2 Day2
  5. C语言2048
  6. 面试总结之html+css
  7. HDU4866 Shooting (要持久段树)
  8. [ An Ac a Day ^_^ ] hdu 5835 Danganronpa 令人发指
  9. JVM中class文件探索与解析(一)
  10. 走近 Python (类比 JS)
  11. python note 13 内置函数
  12. Python 函数内变量的作用域
  13. [廖雪峰] Git 分支管理(2):Bug 分支
  14. ==和equals的简单比较
  15. PS辅助工具Assistor PS
  16. SQLAlchemy-对象关系教程ORM-连接,子查询
  17. kolla-build镜像时,问题汇总
  18. selenium 调用方法
  19. zookeeper安装和使用
  20. On the importance of initialization and momentum in deep learning

热门文章

  1. Android控件_使用TextView实现跑马灯效果
  2. Windows Performance Monitoring with perfmon
  3. java,UDP协议简单实现
  4. sap 中怎样把非限制库存转为销售订单库存?
  5. linux笔记:linux常用命令-目录和文件处理命令
  6. 显示段落p中的前半部分内容 剩下的用三个点代替,点击更多时显示所有内容
  7. 在ArcGIS 10.3标注中竖排文字
  8. androidStudio中如何加载字体资源?
  9. hdu-----(1507)Uncle Tom&#39;s Inherited Land*(二分匹配)
  10. 你不知道的JavaScript--面向对象高级程序设计