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>
  • 相关阅读:
    关于求 p_i != i and p_i != i+1 的方案数的思考过程
    poj 3041 Asteroids 二分图最小覆盖点
    poj 1325 Machine Schedule 最小顶点覆盖
    poj 1011 Sticks 减枝搜索
    poj 1469 COURSES 最大匹配
    zoj 1516 Uncle Tom's Inherited Land 最大独立边集合(最大匹配)
    Path Cover (路径覆盖)
    hdu 3530 SubSequence TwoPoint单调队列维护最值
    zoj 1654 Place the Rebots 最大独立集转换成二分图最大独立边(最大匹配)
    poj 1466 Girls and Boys 二分图最大独立子集
  • 原文地址:https://www.cnblogs.com/bimingcong/p/5382997.html
Copyright © 2011-2022 走看看