ListView中停靠(悬浮)效果

来源:互联网 发布:万人网络聊天直播吸毒 编辑:程序博客网 时间:2024/05/16 09:13

总得来说就是要停靠的部分,等到它滑动到页面最上方的时候,原本隐藏的控件(和你要停靠的一样效果的控件)显示在页面顶部,以前做这个都没有实现很自然的停靠效果,现在终于找到原因了,listview的滑动监听如下:

listView.setOnScrollListener(new AbsListView.OnScrollListener() {    public void onScrollStateChanged(AbsListView view, int scrollState) {        //监听滑动状态改变    }    @Override    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {          //滑动过程中的监听    }});

以前写的就是在onScrollStateChanged()里面去监听的,这样只有手指滑动停止的时候才会出现变化,效果很明显,用户体验不好,应该在onScroll()里面去监听,这样滑动过程中就会变化,很自然的效果。


停靠的实现:

<FrameLayout 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"    tools:context=".MainActivity" >    <ListView         android:id="@+id/listview"        android:layout_width="fill_parent"        android:layout_height="fill_parent"/>    <TextView        android:id="@+id/title"        android:layout_width="match_parent"        android:layout_height="50dp"        android:gravity="center_vertical"        android:background="#ffffff"        android:text="Activity"        android:visibility="gone"/></FrameLayout>

listView.setOnScrollListener(new AbsListView.OnScrollListener() {    public void onScrollStateChanged(AbsListView view, int scrollState) {    }    @Override    public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {            if (firstVisibleItem >= 1) {                title.setVisibility(View.VISIBLE);            } else {                title.setVisibility(View.GONE);            }    }});
总的一句话:去控制不同时间停靠(title)的显示和隐藏。



总结:

1.做这个效果一定要在onScroll()方法里面做

2.我突然发现,原来ListView居然可以添加多个header

lv = (ListView) findViewById(R.id.lv);lv.addHeaderView(View.inflate(this, R.layout.header_1, null));//添加头部---内容部分lv.addHeaderView(View.inflate(this, R.layout.header_2, null));/添加到头部--ListView条目中的悬浮部分 
效果图:



停靠效果图:(借用别人的gif图)

\


0 0
原创粉丝点击