滑动listview隐藏和显示顶部布局
生活随笔
收集整理的這篇文章主要介紹了
滑动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"><includeandroid:id="@+id/title"layout="@layout/mine_title_layout" /><LinearLayoutandroid: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.CircleImageViewandroid:id="@+id/personal_card_image"android:layout_width="78dp"android:layout_height="78dp"android:layout_marginTop="23dp"android:src="@mipmap/bg_touxiang" /><TextViewandroid: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" /><TextViewandroid: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" /><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="23dp"android:layout_marginTop="5dp"android:orientation="horizontal"><TextViewandroid:id="@+id/personal_card_department"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@color/my_gray_font"android:textSize="14sp" /><TextViewandroid: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" /><TextViewandroid: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><LinearLayoutandroid: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"><RelativeLayoutandroid:id="@+id/personal_share_layout"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:orientation="vertical"><TextViewandroid: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" /><Viewandroid:id="@+id/personal_share_line"android:layout_width="match_parent"android:layout_height="3dp"android:layout_alignParentBottom="true"android:background="@color/my_blue" /></RelativeLayout><RelativeLayoutandroid:id="@+id/personal_community_layout"android:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:orientation="vertical"><TextViewandroid: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" /><Viewandroid: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.ViewPagerandroid: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() {@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) {switch (scrollState) {case SCROLL_STATE_TOUCH_SCROLL:oldIndex = view.getLastVisiblePosition();break;}}@Overridepublic 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);}} });?
總結
以上是生活随笔為你收集整理的滑动listview隐藏和显示顶部布局的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: POJ 3225 线段树+lazy标
- 下一篇: Struts2 学习系列 (2) 访问w