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++;
}
}
}
摘自 oldfeel
补充:移动开发 , Android ,