zoukankan      html  css  js  c++  java
  • android 瀑布流

    引用:http://www.cnblogs.com/oldfeel/archive/2012/06/01/2530584.html

    <?xml version="1.0" encoding="utf-8"?>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/arc_hf_search_result"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <LinearLayout
            android:id="@+id/arc_hf_search_item"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical" >
        </LinearLayout>
    
    </ScrollView>
    复制代码

    ArcHFSearchResult.java

    复制代码
    public class ArcHFSearchResult extends Activity {
        protected static final String TAG = "ArcHFSearchResult";
        private ScrollView svResult;
        private LinearLayout llItem;
        private String[] arrayStr;
        private int pageCount = 0;
        private int resultCount = 10000;
        private int eachCount = 3000;
        private View view;
    
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            svResult = (ScrollView) findViewById(R.id.arc_hf_search_result);
            llItem = (LinearLayout) findViewById(R.id.arc_hf_search_item);
            svResult.setOnTouchListener(svListener);
            view = svResult.getChildAt(0);
            // 将要显示的10000条数据
            arrayStr = new String[resultCount];
            for (int i = 0; i < resultCount; i++) {
                arrayStr[i] = i + "";
            }
            // 第一次添加数据,每次添加3000条。
            AddResult();
        }
    
        class svTouchListener implements OnTouchListener {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    break;
                case MotionEvent.ACTION_UP:
                    // 如果触发监听事件,并且有内容,并且ScrollView已经拉到底部,加载一次数据
                    if (svListener != null
                            && view != null
                            && view.getMeasuredHeight() - 20 <= svResult
                                    .getScrollY() + svResult.getHeight()) {
                        AddResult();
                    }
                    break;
                default:
                    break;
                }
                return false;
            }
        }
    
        svTouchListener svListener = new svTouchListener();
    
        /**
         * 添加结果
         */
        protected void AddResult() {
            if (eachCount * pageCount < resultCount) {
                for (int i = 0; i < eachCount; i++) {
                    int k = i + eachCount * pageCount;
                    if (k >= resultCount)
                        break;
                    TextView tv = new TextView(this);
                    tv.setText("hello world" + arrayStr[k]);
                    llItem.addView(tv);
                }
                pageCount++;
            }
        }
    }
  • 相关阅读:
    android 75 新闻列表页面
    android 74 下载文本
    android 73 下载图片
    android 72 确定取消对话框,单选对话框,多选对话框
    android 71 ArrayAdapter和SimpleAdapter
    android 70 使用ListView把数据显示至屏幕
    maven如何将本地jar安装到本地仓库
    Centos6.7搭建ISCSI存储服务器
    解决maven打包编译出现File encoding has not been set问题
    MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
  • 原文地址:https://www.cnblogs.com/sode/p/2609442.html
Copyright © 2011-2022 走看看