在ios中的tabview功能类似于android中的listview,不过ios中的tabview具有弹性,在控件滚动到顶部或底端后会继续往上或向下滑动一段距离,感觉很有亲和力,很传神,其实在android中做到这样的效果很简单,重写listview 的overScrollBy方法就好,
效果图:
TestListview.java
package com.example.example.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;
public class TestListview extends ListView {
public TestListview(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX,
int scrollY, int scrollRangeX, int scrollRangeY,
int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
// TODO Auto-generated method stub
return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX,
scrollRangeY, maxOverScrollX, 66, isTouchEvent);
}
}
TestListviewActivity.java
package com.example.example;
import android.app.Activity;
import android.os.Bundle;
public class TestListviewActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_listview);
}
}
activity_test_listview.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.example.TestListviewActivity"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/hello_world" />
<com.example.example.view.TestListview
android:layout_width="match_parent"
android:layout_height="match_parent"
android:entries="@array/list" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="list">
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
<item >123erjtejrltjle;jtlekjt</item>
</string-array>
</resources>