ListView上滑和下滑,显示和隐藏Toolbar的实现方法
ListView上滑和下滑,显示和隐藏Toolbar的实现方法 Android开发中,ListView是一种常用的控件,它可以展示大量的数据,但是当用户滑动ListView时,如果Toolbar一直显示在屏幕上,可能会影响用户的体验。因此,实现ListView上滑和下滑,显示和隐藏Toolbar的功能是非常有用的。本文将为大家分享一篇ListView上滑和下滑,显示和隐藏Toolbar的实现方法,具有很好的参考价值,希望对大家有所帮助。 在AndroidManifest.xml文件中,我们需要隐藏系统自带的ActionBar,在<application>标签中添加android:theme="@style/Theme.AppCompat.Light.NoActionBar",并且Activity需要继承AppCompatActivity。 在布局文件中,我们需要添加Toolbar和ListView。Toolbar是ActionBar的替代品,它可以提供更多的自定义功能。ListView是用来展示数据的控件,它可以自动加载更多的数据。我们可以在activity_main.xml文件中添加以下代码: ```xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.listview_unit4_1.MainActivity"> <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/colorPrimary" /> </RelativeLayout> ``` 在MainActivity中,我们需要获取ListView和Toolbar的实例,并且设置ListView的Adapter。我们还需要定义一些变量来记录用户的滑动距离和toolbar的显示状态。 ```java package com.example.listview_unit4_1; import android.animation.ObjectAnimator; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private ListView listView; private List<String> listViewData;//数据源 private ArrayAdapter<String> adapter; private Toolbar toolbar; private int mTouchSlop;//系统认为的最小滑动距离 private float mFirstY;//用户首次触摸的Y坐标 private float mLastY;//用户滑动结束时Y坐标 private ObjectAnimator mAnimator;//将控件与动画联系起来的类(可以使指定的控件,实现指定的动画效果) private boolean mShow;//toolbar是否显示 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); toolbar = (Toolbar) findViewById(R.id.toolbar); listView = (ListView) findViewById(R.id.list_view); listViewData = new ArrayList<>(); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, listViewData); listView.setAdapter(adapter); //... } ``` 在onTouchEvent方法中,我们需要记录用户的滑动距离,并且根据滑动距离来决定toolbar是否显示。 ```java @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mFirstY = event.getY(); break; case MotionEvent.ACTION_MOVE: mLastY = event.getY(); if (mLastY - mFirstY > mTouchSlop) { //用户上滑 mShow = false; mAnimator = ObjectAnimator.ofFloat(toolbar, "translationY", 0, -toolbar.getHeight()); mAnimator.start(); } else if (mFirstY - mLastY > mTouchSlop) { //用户下滑 mShow = true; mAnimator = ObjectAnimator.ofFloat(toolbar, "translationY", -toolbar.getHeight(), 0); mAnimator.start(); } break; default: break; } return super.onTouchEvent(event); } ``` 在上面的代码中,我们使用ObjectAnimator来实现toolbar的动画效果。当用户上滑时,toolbar会隐藏;当用户下滑时,toolbar会显示。 实现ListView上滑和下滑,显示和隐藏Toolbar的功能需要我们合理地使用ListView和Toolbar,并且记录用户的滑动距离,并根据滑动距离来决定toolbar是否显示。这个功能可以大大提高用户的体验。
- 粉丝: 3
- 资源: 942
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 电路分析基础 实验五 RLC串联谐振的multisim仿真
- 2个月涨粉8w,新玩法AI做漫画小说赛道,操作简单可批量制作,新手小白....mp4
- 高分辨率下的遥感目标分割
- 网络攻防原理与技术-实验8资料.7z
- 电机控制器,永磁同步电机调速控制软件工程PMSM,该工程主要基于DSP28335硬件控制平台,两电平IPM模块主回路,通过位置传感器,速度传感器实时检测位置和速度信号,电流传感器采集电流信号,控制器控
- 24年快手无人直播暴利变现3.0,直播间人气轻松破千上热门,普通人也能....mp4
- 2024年9月28日支付宝分成最新搬运玩法.mp4
- 西门子1200PLC模板通讯程序 modbus 包含多种通讯Modbus-RTU(485),S7通讯,Modbus-TCP,TCP IP等,博途V16及较新版本可打开,简单明了,初学者也能明白
- ICED Smart 网站部署教程文件
- 2024淘宝暴力掘金 单机500+.mp4
- 2024年最新暴力起店玩法,拼多多虚拟电商4.0,24小时实现成交,单人可以...mp4
- 2024影视解说最新玩法,AI一键生成原创影视解说, 十秒钟制作成品,解....mp4
- 2024掌握拼多多运营精髓:爆款流程、定价技巧与SKU设计实战课.mp4
- 房屋租赁推荐系统 房租租赁系统 基于协同过滤的房屋租赁推荐系统 特色功能:协同过滤推荐 对于房租租赁,结合实际场景选择用户对房子的浏览次数作为数据集,体现用户喜好度,应用余弦相似度,实现基于用户协同过
- X6程序模块 AE-10D00.GDL
- AspSweb网页服务器1.0.0.93