zoukankan      html  css  js  c++  java
  • 滑动listview隐藏和显示顶部布局

    需求:

    1.listview向下滑动时,隐藏顶部布局

    2.listview向上滑动到最上面,显示顶部布局

    3.顶部布局的隐藏和显示有过渡效果

    4.第一次加载listview时,顶部不要隐藏

    布局:

    注意:android:animateLayoutChanges="true"添加在需要隐藏显示布局的父布局中才能有过渡效果

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/personal_card_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:animateLayoutChanges="true" 
        android:descendantFocusability="blocksDescendants"
        tools:context="com.xuehu365.xuehu.ui.activity.PersonalCardActivity">
    
        <include
            android:id="@+id/title"
            layout="@layout/mine_title_layout" />
    
        <LinearLayout
            android:id="@+id/personal_card_information"
            android:layout_width="match_parent"
            android:layout_height="180dp"
            android:layout_below="@id/title"
            android:gravity="center_horizontal"
            android:orientation="vertical">
    
            <com.xuehu365.xuehu.ui.widget.CircleImageView
                android:id="@+id/personal_card_image"
                android:layout_width="78dp"
                android:layout_height="78dp"
                android:layout_marginTop="23dp"
                android:src="@mipmap/bg_touxiang" />
    
            <TextView
                android:id="@+id/personal_card_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="9dp"
                android:textColor="@color/my_font"
                android:textSize="16sp" />
    
            <TextView
                android:id="@+id/personal_card_company"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="5dp"
                android:textColor="@color/my_gray_font"
                android:textSize="14sp" />
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="23dp"
                android:layout_marginTop="5dp"
                android:orientation="horizontal">
    
                <TextView
                    android:id="@+id/personal_card_department"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/my_gray_font"
                    android:textSize="14sp" />
    
                <TextView
                    android:id="@+id/personal_card_between"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="-"
                    android:textColor="@color/my_gray_font"
                    android:textSize="14sp"
                    android:visibility="gone" />
    
                <TextView
                    android:id="@+id/personal_card_duty"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textColor="@color/my_gray_font"
                    android:textSize="14sp" />
    
            </LinearLayout>
        </LinearLayout>
    
        <LinearLayout
            android:id="@+id/personal_card_tabs"
            android:layout_width="match_parent"
            android:layout_height="43dp"
            android:layout_below="@id/personal_card_information"
            android:background="@color/white"
            android:orientation="horizontal">
    
            <RelativeLayout
                android:id="@+id/personal_share_layout"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical">
    
                <TextView
                    android:id="@+id/personal_share"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:text="看过的直播"
                    android:textColor="@color/my_gray_font"
                    android:textSize="18sp" />
    
                <View
                    android:id="@+id/personal_share_line"
                    android:layout_width="match_parent"
                    android:layout_height="3dp"
                    android:layout_alignParentBottom="true"
                    android:background="@color/my_blue" />
            </RelativeLayout>
    
    
            <RelativeLayout
                android:id="@+id/personal_community_layout"
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical">
    
                <TextView
                    android:id="@+id/personal_community"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:gravity="center"
                    android:text="加入的社群"
                    android:textColor="@color/my_gray_font"
                    android:textSize="18sp" />
    
                <View
                    android:id="@+id/personal_community_line"
                    android:layout_width="match_parent"
                    android:layout_height="3dp"
                    android:layout_alignParentBottom="true"
                    android:background="@color/white" />
            </RelativeLayout>
        </LinearLayout>
    
        <android.support.v4.view.ViewPager
            android:id="@+id/personal_card_vp"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@id/personal_card_tabs"
            android:descendantFocusability="blocksDescendants"></android.support.v4.view.ViewPager>
    </RelativeLayout>

    代码

    private int oldIndex;
    private int newIndex;
    private boolean isFirstScroll;
    
    
    //列表滑动监听隐藏信息布局
    personal_card_lv.setOnScrollListener(new AbsListView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            switch (scrollState) {
                case SCROLL_STATE_TOUCH_SCROLL:
                    oldIndex = view.getLastVisiblePosition();
                    break;
            }
        }
    
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            newIndex = view.getLastVisiblePosition();
            LogHelp.i("scroll", "newIndex:" + newIndex + "--oldIndex:" + oldIndex);
            //往下滑
            if (newIndex > oldIndex && firstVisibleItem > 0) {
                isFirstScroll = true;
                ((PersonalCardActivity) getActivity()).personal_card_information.setVisibility(View.GONE);
            } else if (firstVisibleItem == 0 && isFirstScroll == true) {
                //往上滑
                ((PersonalCardActivity) getActivity()).personal_card_information.setVisibility(View.VISIBLE);
            }
        }
    });

     

  • 相关阅读:
    DEDECMS5.5/5.6/5.7列表页调用TAG标签(热门标签)的两种方法
    DEDE列表页和内容页调用顶级栏目ID的方法
    解决dede图集上传图片时跳出302错误
    DEDE用{dede:sql}标签取出当前文档的附加表中的内容
    DEDE模板中如何运行php脚本和php变量的使用
    织梦DEDECMS {dede:arclist},{dede:list}获取附加表字段内容
    把DEDE的在线文本编辑器换成Kindeditor不显示问题
    ExtJS:文件上传实例
    ExtJS:GridPanel之renderer:function()和itemdblclick : function()方法参数详解
    ExtJS:菜单ComboBox及级联菜单应用
  • 原文地址:https://www.cnblogs.com/anni-qianqian/p/5911710.html
Copyright © 2011-2022 走看看