Android 页面惯性回弹效果,Nested接口接口简单实现。

基本使用

  • 仿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中


  "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
            }
        }
    }
}

效果

  • 下拉
    Android 页面惯性回弹效果,Nested接口接口简单实现。_第1张图片

  • 上拉
    Android 页面惯性回弹效果,Nested接口接口简单实现。_第2张图片

SmartLayout

基本使用

在xml中

"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"/>

    

Android 页面惯性回弹效果,Nested接口接口简单实现。_第3张图片

Android 页面惯性回弹效果,Nested接口接口简单实现。_第4张图片

参照demo

Android自己的页面惯性回弹效果

你可能感兴趣的:(自定义控件,ui美化,常用api)