zoukankan      html  css  js  c++  java
  • android 瀑布流简单例子

    main.xml

    <?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++;
            }
        }
    }
  • 相关阅读:
    linux下配置java环境
    CentOS6 配置静态IP
    数据库的事务
    MySQL总论
    JDBC面试题
    scp命令
    大数据练习题
    Linux下的Mysql安装 & 配置
    Hive的安装配置 & 基础指令
    本地存储localStorage以及它的封装接口store.js的使用
  • 原文地址:https://www.cnblogs.com/oldfeel/p/2530584.html
Copyright © 2011-2022 走看看