简而言之   为listView设置onScrollListener  当滑动时 firstVisibleItem>=要悬浮的 item的position时 让悬浮部分显示  否则隐藏

其实就是在listView之上用帧布局覆盖了一个 悬浮部分

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sticky);
invis = (LinearLayout) findViewById(R.id.invis); strs = new String[100]; for (int i = 0; i < 20; i++) {
strs[i] = "data-----" + i;
} lv = (ListView) findViewById(R.id.lv);
View header = View.inflate(this, R.layout.stick_header, null);//头部内容
lv.addHeaderView(header);//添加头部
lv.addHeaderView(View.inflate(this, R.layout.stick_action, null));//ListView条目中的悬浮部分 添加到头部 lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, strs));
lv.setOnScrollListener(new OnScrollListener() { @Override
public void onScrollStateChanged(AbsListView view, int scrollState) { } @Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
if (firstVisibleItem >= 1) {
invis.setVisibility(View.VISIBLE);
} else { invis.setVisibility(View.GONE);
}
}
});
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" > <TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="#332b3b"
android:gravity="center"
android:text="标题"
android:textColor="#ffffff" /> <FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/title" > <ListView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="match_parent" /> <LinearLayout
android:id="@+id/invis"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:background="#ccedc7"
android:orientation="horizontal"
android:visibility="gone" > <TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center"
android:text="悬浮部分" />
</LinearLayout>
</FrameLayout> </RelativeLayout>

listView悬浮头部的简单实现的更多相关文章

  1. Android项目实战(二十):浅谈ListView悬浮头部展现效果

    先看下效果:需求是 滑动列表 ,其中一部分视图(粉丝数,关注数这一部分)在滑动到顶端的时候不消失,而是停留在整个界面头部. 我们先分析要解决的问题: 1.如何实现列表ListView顶部视图跟随Lis ...

  2. ListView之头部浮动效果

    ListView 中有时需要在顶部固定一个浮动栏,当向上滑动 ListView 时,浮动栏固定在顶部,当向下滑动 ListView 到其 HeaderView 可见时,浮动栏成为ListView的一部 ...

  3. 【C#/WPF】ListView的MVVM例子,及禁止拖动ListView的头部Header

    一个ListView的MVVM简单例子: <ListView ItemsSource="{Binding GoodsList}" Margin="0,10,0,10 ...

  4. ListView的圆角的简单实现

    今天在用ListView控件的时候,发现自带的不美观,就是找找相关的美化教程,发现都挺麻烦的,无意中发现一个开源项目,地址:点击打开链接,使用起来很简单,官方网站说的也很简单,就是导入库,然后像其他控 ...

  5. android:为ListView 添加自定义头部和尾部,上拉主动加载 .(引)

    1.加头尾部 (1)定自义一个xml布局 my_headview.xml 在Activity类里找到这个自定义布局,并添加到头部 LinearLayout  hearderViewLayout = ( ...

  6. Android中ListView嵌套GridView的简单消息流UI(解决宽高问题)

    最近搞一个项目,需要用到类似于新浪微博的消息流,即每一项有文字.有九宫格图片,因此这就涉及到ListView或者ScrollView嵌套GridView的问题.其中GridView的高度问题在网上都很 ...

  7. winform —— listview创建表及简单的增删改查

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. android中ListView控件最简单的用法

    创建一个活动,在xml文件中添加一个ListView控件,id定义为list1,并且设置为满屏显示,代码如下: <ListView android:id="@+id/list1&quo ...

  9. ListView控件(下)简单适配器

    (一) 1.效果图 2.activiy_main.xml <?xml version="1.0" encoding="utf-8"?> <Li ...

随机推荐

  1. ThinkPHP5分页样式设置

    手册上讲分页类的使用时对样式讲的不够详细,这里我结合个人的摸索给大家一些参考意见. config里的分页配置我使用的是系统默认的bootstrap,查看thinkphp\library\think\p ...

  2. ReactiveX 学习笔记(16)RxPY

    RxPY RxPY 是 ReactiveX 的 Python语言实现. # 安装 RxPY $ pip3 install rx Successfully installed rx-1.6.1 Basi ...

  3. k8s的内置DNS增加父系DNS方法

    我们都知道K8S有内置DNS,是在搭建K8S时候以容器方式起来的,那么有时候我们需要解析内部DNS地址该怎么办呢,我们可以搭建个内部DNS 但是怎么让K8S通过内部DNS解析呢? 可以尝试如下方法 在 ...

  4. C# DataTable使用方法详解--删除表数据

    在项目中常常常使用到DataTable,假设DataTable使用得当,不仅能使程序简洁有用,并且可以提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 1.添加引用 1 u ...

  5. arcgis_SDE安装步骤

    弄了将近一个星期的Oracle和ArcSDE终于让我给弄好了!下面把过程跟大家分享一下: 首先是Oracle10gR2的安装,在Oracle的官方网站上可以下到Oracle10gR2的安装程序,安装过 ...

  6. js高级-浏览器事件循环机制Event Loop

    JavaScript 是队列的形式一个个执行的 同一时间只能执行一段代码,单线程的  (队列的数据结构) 浏览器是多线程的 JavaScript执行线程负责执行js代码 UI线程负责UI展示的 Jav ...

  7. apache常见的一些配置

    <VirtualHost *:80>ServerName www.aliyun.com #域名ServerAlias www.aliyun.com #别名DocumentRoot /dat ...

  8. Promise.then

    [Promise.then] 1.If onFulfilled returns a promise, the return value of then will be resolved/rejecte ...

  9. display:none vs visibility:hidden

    [display:none vs visibility:hidden] 设置元素的display为none是最常用的隐藏元素的方法. 1 .hide { 2 display:none; 3 } 将元素 ...

  10. python模块部分 re模块 之正则表达式

    python 全栈开发 1.什么是模块 2.正则表达式 一.什么是模块? 1.模块: 是一组功能的集合 你要和一个东西打交道,但是这个东西本身和python没有关系,这个东西本身就存在, 这时,pyt ...