Android 页面惯性回弹效果,Nested接口接口简单实现。
16lz
2021-01-23
基本使用
仿ios页面惯性回弹效果,ios能行的,Android更能行,奉行这一原则,由于平时自己用的ios手机看了页面效果,确实体验很好,就想了一下为什么Android没有,其实android是可以有的,据非官方的消息称Android其实早就可以有了,只是谷歌疲于跟ios打官司,这才不屑开在原生上开发这一空能,事实证明,Android确实早就有了,很早以前view中就有了overscrollby方法,以及原生view上的overscrollmode,无一不证明,这是对的。其实讲道理处理好overscrollby 及onoverscrolled 即可轻松实现 惯性回弹效果(限于可滑动的viewgroup),本文不介绍这个
我想介绍两个我兴趣写的两个多功能的layout,,使用十分简单,两个layout均只需当作父容器使用技能,如果子容器中包含可滑动view,避免冲突在父容器上标记这个可滑动view的id,因采用nested接口所写,滑动效果除开,惯性回弹外,基本与material design滑动效果一致。
为什么叫它们多功能呢,因为我在其中包含了刷新加载更多的header跟footer的操作,可以说是一个常用框架
不多说了来使用把
OverScrollLayout
基本使用
在xml中
<?xml version="1.0" encoding="utf-8"?>"http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.sunsh.smartlayout.over.ListViewActivity"> "@+id/overscroll_layout" android:layout_width="match_parent" android:layout_height="match_parent"> "@+id/listView" android:layout_width="match_parent" android:overScrollMode="never" android:layout_height="match_parent"/>
在activity中
class ListViewActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_list_view) OverScrollUtils.defaultConfigPullLoad(overscroll_layout) overscroll_layout.setOnRefreshListener(object:OverScrollLayout.OnRefreshListener{ override fun onRefresh() { overscroll_layout.postDelayed({overscroll_layout.refreshComplete()},3000) } override fun onLoading() { overscroll_layout.postDelayed({overscroll_layout.loadMoreComplete()},3000) } }) listView.adapter = object : BaseAdapter() { override fun getCount(): Int { return 50 } override fun getItem(position: Int): Any? { return null } override fun getItemId(position: Int): Long { return 0 } override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { var convertView = convertView if (convertView == null) { convertView = TextView(this@ListViewActivity) convertView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 80) convertView.textSize = 16f convertView.text = position.toString() + "行" convertView.gravity = Gravity.CENTER } return convertView } } }}
效果
下拉
上拉
SmartLayout
基本使用
在xml中
<?xml version="1.0" encoding="utf-8"?>"http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.sunsh.smartlayout.smat.WebViewActivity"> "match_parent" android:layout_height="match_parent"> "@+id/webView" android:layout_width="match_parent" android:overScrollMode="never" android:layout_height="match_parent"/>
参照demo
Android自己的页面惯性回弹效果
更多相关文章
- Android 碎屏效果 (Crack Screen,击碎屏幕)
- android按钮按下的效果
- Android GLSurfaceView模糊效果
- Android(Java):按钮复选框点中效果
- Android实现轮播图效果
- Android FrameLayout的显示效果
- 跑马灯效果
- Android中使用Gallery_tabhost来实现标签效果图源码
- Android DrawerLayout抽屉效果