zoukankan      html  css  js  c++  java
  • listView悬浮头部的简单实现

      简而言之   为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>
  • 相关阅读:
    智能算法浅介模拟退火,遗传算法,禁忌搜索,神经网络等
    shell 字符串操作(长度,查找,替换)详解
    如何实现两个文件相减的功能(剔除)
    shell数值操作(四则运算,浮点数,科学计数法)awk,bc
    CUDA程序优化的记录
    随机化算法模拟退火
    (转)AspNetPager 样式以及使用(漂亮)
    (转)做项目时,如何做比较美观大方的数据输入窗体
    (转)26个Jquery使用小技巧(jQuery tips, tricks & solutions)
    (转)【译】Asp.net MVC并不仅仅只是Linq to SQL
  • 原文地址:https://www.cnblogs.com/bimingcong/p/5382997.html
Copyright © 2011-2022 走看看