recyclerview

【Android 界面效果49】RecyclerView高度随Item自适应

旧时模样 提交于 2019-12-18 19:41:38
编写RecyclerView.ItemDecoration时,在onDraw方法中,Drawable的高度等于RecyclerView的高度减去RecyclerView的上下padding。 @Override public void onDraw(Canvas c, RecyclerView parent, State state) { int top = parent.getPaddingTop(); int bottom = parent.getHeight() - parent.getPaddingBottom(); int childCount = parent.getChildCount(); for(int i=0;i < childCount;i++){ View child = parent.getChildAt(i); RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams)child.getLayoutParams(); int left = child.getRight() + layoutParams.rightMargin; int right = left + mDivider.getIntrinsicWidth(); mDivider.setBounds(left,

RecyclerView的简单使用

微笑、不失礼 提交于 2019-12-18 14:08:26
在布局文件中声明 在Activity中使用 Adapter的创建 添加单击事件 Item动画 更新数据 1、 在布局文件中声明 <android.support.v7.widget.RecyclerView android:id="@+id/my_recycler_view" android:scrollbars="vertical" android:layout_width="match_parent" android:layout_height="match_parent"/> 2、 在Activity中使用 // 1,找到这个ViewmRecyclerView = (RecyclerView)findViewById(R.id.my_recycler_view); // 2,设置布局管理LayoutManager mLayoutManager = new LinearLayoutManager(this); mRecyclerView.setLayoutManager(mLayoutManager); // 3,(可选)如果可以确定每个item的高度是固定的,设置这个选项可以提高性能 mRecyclerView.setHasFixedSize(true); // 4,设置Adapter mRecyclerView.setAdapter(new MyAdapter());

安卓开发课程设计报告

我们两清 提交于 2019-12-17 11:57:26
湖南科技大学计算机科学与工程学院 综合实践能力创新实训-安卓开发课程设计报告 题 目: 新 闻 客 户 端 学 号: 1705010323 姓 名: 九 岁 ya 完成时间: 2019年12月15日 安卓开发-新闻客户端 1.设计要求 1.1 技术平台要求 1.熟悉 Android Stuido、Eclipse、SQLite 等常用 Android 开发工具。 2.熟悉一种语言,主要使用java语言开发。 3.设计并实现一个具体的 Android 应用系统,本次课程设计选择的是新闻客户端的题目。 (1)对选定的新闻客户端项目进行需求分析,写出需求说明书,并搜集、整理所需素材。 (2)根据项目需求,进行数据库(如果需要数据库的话)的概要设计与详细设计。 (3)根据需求说明进行项目的功能设计,画出每个界面的原型。进行详细设计,实现每个模块的功能。 (4)对项目进行部署与测试。 (5)分析总结项目的创新点和存在的不足,提出优化思路。 1.2 功能要求 对于要完成的新闻客户端项目需要做到以下功能: 1.掌握 Android 中的菜单及导航框架。 随着安卓开发的盛行,安卓应用占据了手机APP市场的绝大部分份额。随着市场的推动和技术的发展与沉淀,Android开发领域产生了很多实用并且容易开发的各类包和小型框架,例如速展示Adobe Afeter Effect(AE

kotlin关于RecycleView简单使用

淺唱寂寞╮ 提交于 2019-12-16 08:38:51
1.添加builder ,引用recycleview implementation 'com.android.support:recyclerview-v7:26+' 2.效果图 3.主界面功能 package com.example.admin.zkotlin import android.content.Context import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.view.ViewGroup import androidx.constraintlayout.widget.ConstraintLayout import kotlinx.android.synthetic.main.activity_photo.* import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView

学不动也要学!深入了解ViewPager2

邮差的信 提交于 2019-12-15 22:28:21
就在上个月20号(2019年11月20号),期待已久的ViewPager2 正式版终于发布了!不知道你是否已经蠢蠢欲动着手用ViewPager2去改造你项目的ViewPager了?什么?你还不知道ViewPager2?那么请你马上系好安全带,本篇文章将带你一览ViewPager2的风采。 一、ViewPager2的新特性 ViewPager2从名字就可以看出来它是ViewPager的升级版,既然是升级版那么它相比ViewPager有哪些新功能和哪些API变化呢?我们接着往下看。 1.ViewPager2新特性 基于RecyclerView实现。这意味着RecyclerView的优点将会被ViewPager2所继承。 支持竖直滑动。只需要一个参数就可以改变滑动方向。 支持关闭用户输入。通过setUserInputEnabled来设置是否禁止用户滑动页面。 支持通过编程方式滚动。通过fakeDragBy(offsetPx)代码模拟用户滑动页面。 CompositePageTransformer 支持同时添加多个PageTransformer。 支持DiffUtil ,可以添加数据集合改变的item动画。 支持RTL (right-to-left)布局。我觉得这个功能对国内开发者来说可能用处不大… 2.相比ViewPager变化的API

recyclerview焦点

荒凉一梦 提交于 2019-12-15 05:10:58
//防止焦点丢失 public boolean onKeyDown(int keyCode, KeyEvent event) { long current = System.currentTimeMillis(); boolean dispatch; if (current - tempTime < 150) { dispatch = true; } else { dispatch = super.onKeyDown(keyCode, event); tempTime = current; } return dispatch; } //recyclerview tv焦点跳转指定位置 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT) { if (recyclerView.getChildLayoutPosition(recyclerView.getChildAt(0)) == 0) { recyclerView.scrollToPosition(adapter.getItemCount() - 1); requestFocus(recyclerView, adapter.getItemCount() - 1); }

深入分析RecyclerView源码——滑动机制

﹥>﹥吖頭↗ 提交于 2019-12-14 10:08:24
RecyclerView布局之外,最常用的功能应该就是滑动。RecyclerView的事件处理依然是常规的onTouchEvent根据触控事件响应,特别的是RecyclerView采用了嵌套滑动机制,会把滑动事件通知给支持嵌套滑动的父view先做决定,以实现诸如toolBar上划隐藏的效果,还有就是涉及到缓存策略,不过相比布局,滑动的缓存策略要简单的多,仅仅是把划出屏幕的viewHolder存入mCachedViews。 onTouchEvent public boolean onTouchEvent(MotionEvent e) { //如果使用了ItemTouchHelper,先让它处理 if (dispatchToOnItemTouchListeners(e)) { cancelScroll(); return true; } //LayoutManager是否支持水平或竖直滑动 final boolean canScrollHorizontally = mLayout.canScrollHorizontally(); final boolean canScrollVertically = mLayout.canScrollVertically(); boolean eventAddedToVelocityTracker = false; //Mask和是事件类型

Android示例应用:开源框架Glide的使用

浪子不回头ぞ 提交于 2019-12-13 08:51:35
Android开源框架Glide的使用-示例应用 加载网络图片 加载网络图片 加载本地图片-简易图库 加载网络图片 引入对应的库 compile 'com.android.support:recyclerview-v7:25.0.0' compile 'com.github.bumptech.glide:glide:3.7.0' 创建 RecyclerView 的布局 res/layout/fragment_list.xml <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recycler_view"></android.support.v7.widget.RecyclerView> 创建 RecyclerView 的每个item的布局 res/layout/list_item.xml 需要注意不要都写成 match_parent 或 wrap_content

软工大作业——社团项目个人总结

末鹿安然 提交于 2019-12-10 12:24:01
完整项目链接: https://github.com/hkymygithub/ClubManage 一、个人分工   在这个项目中我主要负责主要界面的基本实现(不包括界面的美化,界面的美化工作由我们小组的另一位成员来实现)。   左边的图片是我界面的基本实现,右边的图片是我们小组另一位成员美化后的结果。    二、个人项目总结   虽然我的工作相较于其他小组的成员而言比较简单,但是我在完成自己任务的过程中遇到了许多困难,与此同时也收获良多。   ①底部导航栏与顶部导航栏的嵌套实现。   对于我来所,单独地实现底部导航栏或顶部导航栏都不是一件困难的事情,但是,当我要在底部导航栏切换的界面当中在加入一个顶部导航栏,通过点击不同的导航来进行内部界面的切换来说,对我而言是一个巨大的挑战。单单通过闭门造车是不可实现的,于是我便在网上查找了大量的资料。在这个查找资料的过程中,我一开始找的资料都是对我并没有太大用处的东西,可以说纯粹地在浪费自己的时间。但是随着不同的尝试,我逐渐地学会了如何去甄别和筛选对我有很大用处的东西,而去剔除那些无用的东西。   一开始我本来打算使用Button来简单实现界面的切换,但是由于我的组员觉得这个不太好,没有切换的动画效果,且对我们本身提升自己的能力没有太大的帮助,不能够学习到什么新的知识,没有什么出彩的地方而否决了。于是我采用了下面的方法来进行界面切换。   

Android 6.0 解决recyclerview 在 scrollview 中不能全部显示,高度不正常的问题。

纵然是瞬间 提交于 2019-12-10 02:27:32
这个问题困扰了我半天,国内百度上的资料非常的烂。根本无法解决问题。 在android 4 / 5 版本中 scrollview 包含了一个recyclerview 滚动一切正常。 在6.0中不能全部显示。原来是一个BUG 最终 stackoverflow 找到了解决办法: http://stackoverflow.com/questions/27083091/recyclerview-inside-scrollview-is-not-working 主要代码 https://github.com/amardeshbd/android-recycler-view-wrap-content This is a sample android app which demonstrates `RecyclerView` wrap_content inside `ScrollView` issue on Marshmallow and Nougat (API 23 & 24) and how to work around it. 在API23 24中不能正常工作。 解决办法: 在 recyclerview 外面再包一层 RelativeLayout <RelativeLayout android:layout_width="match_parent" android:layout_height