• 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++;
            }
        }
    }
  • 相关阅读:
    iOS 相册相机应用2
    运行时啊
    在iOS开发的Quartz2D使用中实现图片剪切和截屏功能
    内购
    自制数据挖掘工具分析北京房价 (二) 数据清洗
    数据挖掘工具分析北京房价 (一) 数据爬取采集
    程序员讨论 《黑客帝国》 (三) 情感
    程序员讨论《黑客帝国》(二)平衡和进化
    程序员讨论《黑客帝国》(一)真实与虚拟
    类库与框架,强类型与弱类型的闲聊
  • 原文地址:https://www.cnblogs.com/sode/p/2609442.html
Copyright © 2020-2023  润新知