首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏今天学习了吗

    RecyclerView源码解析(二)LinearLayoutManager绘制篇

    LayoutManager是一个抽象类,系统提供了继承它的LinearLayoutManager,GridViewLayoutManager,StaggeredGridLayoutManager三种LayoutManager 首先来看看LinearLayoutManager是怎么实现绘制的。 确定锚点 所谓锚点,在这里就是指最先定位的那一个item,锚点相关信息在LinearLayoutManager中用AnchorInfo类表示 static class AnchorInfo {      boolean mLayoutFromEnd; //是否从底部往上布局,在本文讨论的场景中,值都为false     boolean mValid; //anchor信息是否设置完毕     ... } LinearLayoutManager minX, minY, maxX, maxY);     setMeasuredDimension(mRecyclerView.mTempRect, widthSpec, heightSpec); } LinearLayoutManager

    1.5K30发布于 2021-11-25
  • 来自专栏韩曙亮的移动开发专栏

    【RecyclerView】 三、RecyclerView 布局 ( 线性布局管理器 LinearLayoutManager )

    文章目录 一、线性布局 1、线性布局管理器 LinearLayoutManager 2、垂直不翻转代码示例 3、水平翻转代码示例 二、完整代码示例 三、RecyclerView 相关资料 本篇博客主要讨论设置不同的布局管理器 使用代码创建 线性布局管理器 LinearLayoutManager , 推荐使用 LinearLayoutManager(Context context, @RecyclerView.Orientation int orientation, boolean reverseLayout) 构造函数 , 可以使用一行代码设置基本的 LinearLayoutManager 参数 ; 参数说明 : ① Context LinearLayoutManager(this, RecyclerView.VERTICAL, false); // 横向设置 , 翻转 LinearLayoutManager LinearLayoutManager(this, RecyclerView.VERTICAL, false); // 横向设置 , 翻转 //LinearLayoutManager

    1.6K00编辑于 2023-03-28
  • 来自专栏Android必知必会

    Android必知必会 - RecyclerView 恢复上次滚动位置

    条件: LinearLayoutManager linearLayoutManager = new LinearLayoutManager(mContext); linearLayoutManager.setOrientation (LinearLayoutManager.HORIZONTAL); // 水平,本文以此为例 linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL = null) { View leftView = linearLayoutManager.getChildAt(0); //获取可视的第一个view if (leftView 代码实现 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getContext()); linearLayoutManager.setOrientation (LinearLayoutManager.HORIZONTAL); recyclerView.setLayoutManager(linearLayoutManager); onScrollListener

    2.6K20发布于 2020-05-28
  • 来自专栏移动开发专栏

    No adapter attached; skipping layout 原因、解决办法

    随意示范一下 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL , false); mRecyclerView.setLayoutManager(linearLayoutManager); 上面用的是LinearLayoutManager的第二个构造方法 * @param reverseLayout When set to true, layouts from end to start. */ public LinearLayoutManager (mContext)); /** * Creates a vertical LinearLayoutManager * * @param context Current context, will be used to access resources. */ public LinearLayoutManager(Context context) {

    2.2K10编辑于 2022-06-10
  • 来自专栏字节流动

    详细聊聊 RecyclerView 缓存机制

    () -> LinearLayoutManager.fill() -> LinearLayoutManager.layoutChunk() -> LinearLayoutManager.LayoutState.next ()-> RecyclerView.Recycler.getViewForPosition() LinearLayoutManager.layoutForPredictiveAnimations()-> LinearLayoutManager.fill() -> LinearLayoutManager.layoutChunk() -> LinearLayoutManager.LayoutState.next ()-> RecyclerView.Recycler.getViewForPosition() LinearLayoutManager.scrollBy()-> LinearLayoutManager.fill () -> LinearLayoutManager.layoutChunk() -> LinearLayoutManager.LayoutState.next()-> RecyclerView.Recycler.getViewForPosition

    3.4K43发布于 2021-04-23
  • 来自专栏AndroidStudio初识

    RecyclerView详解

    1、 LinearLayoutManager 现行管理器,支持横向、纵向。 是用来做列表布局,也就是单列的列表 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); //设置为垂直布局,默认是垂直的(垂直:LinearLayoutManager.VERTICAL,水平:LinearLayoutManager.HORIZONTAL) linearLayoutManager.setOrientation 水平RecyclerView: //LinearLayoutManager是用来做列表布局,也就是单列的列表 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); //设置为垂直布局,默认是垂直的(垂直:LinearLayoutManager.VERTICAL,水平:LinearLayoutManager.HORIZONTAL

    3.5K21发布于 2019-09-12
  • 来自专栏Android Note

    RecyclerView 分页功能

    layoutManager; public PaginationScrollListener(LinearLayoutManager layoutManager) { this.layoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); rv.setLayoutManager(linearLayoutManager linearLayoutManager; RecyclerView rv; ProgressBar progressBar; // 分页开始的索引(0是我们的第一页) = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); rv.setLayoutManager(linearLayoutManager 但是现在,它的构造函数只支持LinearLayoutManager

    3.4K30发布于 2018-07-02
  • 来自专栏移动开发

    结合 MultiType 实现加载更多

    linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager(); mScrollListener private Items mItems; private final LoadMore mLoadMore = new LoadMore(); private LinearLayoutManager MultiTypeAdapter mMultiTypeAdapter; ScrollListener(MultiTypeAdapter multiTypeAdapter, Items datas, LinearLayoutManager linearLayoutManager, OnLoadMoreListener onLoadMoreListener) { mItems = datas; mMultiTypeAdapter = multiTypeAdapter; this.mLinearLayoutManager = linearLayoutManager;

    1.8K20发布于 2018-10-18
  • 来自专栏全栈程序员必看

    Recyclerview 刷新「建议收藏」

    rv_shop_bag_list}, adapter:com.lpf.demo.order.adapter.MyAdapter@5f994d1, layout:android.support.v7.widget.LinearLayoutManager widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854) at android.support.v7.widget.LinearLayoutManager $LayoutState.next(LinearLayoutManager.java:2230) at android.support.v7.widget.LinearLayoutManager.layoutChunk (LinearLayoutManager.java:1557) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java :1517) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java

    1.4K30编辑于 2022-11-15
  • 来自专栏非著名程序员

    使用 RecyclerView 实现 Gallery 画廊效果,并控制 Item 停留位置

    代码如下: LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL , false); recyclerView.setLayoutManager(linearLayoutManager); new LinearSnapHelper(). attachToRecyclerView RecyclerView.LayoutManager layoutManager, OrientationHelper helper) { if (layoutManager instanceof LinearLayoutManager ) { int firstChild = ((LinearLayoutManager) layoutManager).findFirstVisibleItemPosition(); int lastChild = ((LinearLayoutManager) layoutManager).findLastVisibleItemPosition(); if (firstChild == RecyclerView.NO_POSITION

    4.5K70发布于 2018-02-09
  • 来自专栏Android&Java技术

    Attempt to write to field 'int android.support.v7.widget.RecyclerView$ViewHolder.mItemViewType' on a

    widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4967) at android.support.v7.widget.LinearLayoutManager $LayoutState.next(LinearLayoutManager.java:2029) at android.support.v7.widget.GridLayoutManager.layoutChunk (GridLayoutManager.java:541) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java :1377) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:

    1.1K30发布于 2020-02-27
  • 来自专栏向治洪

    RecyclerView 实现gallery画廊效果

       import android.app.Activity;   import android.os.Bundle;   import android.support.v7.widget.LinearLayoutManager  linearLayoutManager = new LinearLayoutManager(this);           linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL );           mRecyclerView.setLayoutManager(linearLayoutManager);   //设置适配器         mAdapter = new  linearLayoutManager = new LinearLayoutManager(this);           linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL );           mRecyclerView.setLayoutManager(linearLayoutManager);           mAdapter = new GalleryAdapter

    3.2K50发布于 2018-02-01
  • 来自专栏风吹杨柳

    Android-UI布局---RecyclerView学习(二)利用它做的相册集效果

    R.drawable.l)); mRecyclerView = (MyRecyclerView) findViewById(R.id.id_recyclerview_horizontal); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL ); mRecyclerView.setLayoutManager(linearLayoutManager); mAdapter = new GalleryAdapter(this, mDatas linearLayoutManager = new LinearLayoutManager(this); linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL );//设置方向水平 mRecyclerView.setLayoutManager(linearLayoutManager); mAdapter = new GalleryAdapter(

    1.7K30发布于 2019-07-08
  • 来自专栏Android知识点总结

    1-VII-RecyclerView基本使用

    创建布局管理器 mLlm = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); //4.!!! )); mRecyclerView.addItemDecoration(//竖线 new RecycleViewDivider(this,LinearLayoutManager.VERTICAL 或LinearLayoutManager.HORIZONTAL private static final int[] ATTRS = new int[]{android.R.attr.listDivider = LinearLayoutManager.VERTICAL && orientation ! = LinearLayoutManager.HORIZONTAL) { throw new IllegalArgumentException("请输入正确的参数!")

    93630发布于 2018-09-29
  • 来自专栏Android小菜鸡

    构建BaseRecyclerAdapter,RecyclerView其实很简单

    package com.wusy.wusylibrary.base; import android.content.Context; import android.support.v7.widget.LinearLayoutManager firstVisibleItem, visibleItemCount, totalItemCount; private int currentPage = 1; private LinearLayoutManager mLinearLayoutManager; public LoadMoreRecyclerOnScrollListener(LinearLayoutManager linearLayoutManager ) { this.mLinearLayoutManager = linearLayoutManager; } @Override

    76030发布于 2018-09-06
  • 来自专栏胡飞洋的Android进阶

    曝光埋点方案:recyclerView中的item曝光逻辑实现

    RecyclerView.LayoutManager manager = mRecyclerView.getLayoutManager(); if (manager instanceof LinearLayoutManager ) { LinearLayoutManager linearLayoutManager = (LinearLayoutManager) manager; range = findRangeLinear(linearLayoutManager); orientation = linearLayoutManager.getOrientation ) { LinearLayoutManager linearLayoutManager = (LinearLayoutManager) manager; range = findRangeLinear(linearLayoutManager); orientation = linearLayoutManager.getOrientation

    6.4K10发布于 2020-07-23
  • 来自专栏全栈程序员必看

    Android物联网应用程序开发(智慧园区)—— 图片预览界面

    android.os.Bundle; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager R.layout.activity_main); recyclerView = findViewById(R.id.recycler_view); //创建线性布局管理器,方向垂直 LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false); // recyclerView设置布局管理器 recyclerView.setLayoutManager(linearLayoutManager); MonitorAdapter

    1.3K10编辑于 2022-06-25
  • 来自专栏AndroidTv

    关于RecyclerView你知道的不知道的都在这了(上)前言目录正文

    1.1 LinearLayoutManager 线性布局,用它可以来实现横竖自由切换的线性布局,先来看看它的构造函数: public class LinearLayoutManager extends 竖直LinearLayoutManager示例.png 在 Tv 应用中,这种竖直方向的 LinearLayoutManager 使用场景大多都是用于显示菜单项,使用频率并不是特别高,但在手机应用中,这种的使用频率算是特别高的了 layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); mRecyclerView.setLayoutManager 其实想想也很容易理解,GridLayoutManager 是继承自 LinearLayoutManager,只是在它基础上补充了 spanCount 概念,滑动的实现还是延用 LinearLayoutManager setSpanCount() 通过构造函数指定了 spanCount 后也还可以继续通过该方法进行修改 LinearLayoutManager 的方法 由于是继承关系,所有 LinearLayoutManager

    3.6K60发布于 2018-06-13
  • 来自专栏全栈程序员必看

    RecyclerView0基于使用

    R.layout.activity_main); recyclerView = (RecyclerView) findViewById(R.id.recyclerView); //LinearLayoutManager 能够自己定义实现不同的动画效果和布局效果 //这里设置为LinearLayoutManager.HORIZONTAL变成为了一个能够横向滑动的ListView,赞不赞? LinearLayoutManager layoutManager = new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false); RecyclerView通过(RecyclerView) findViewById(R.id.recyclerView)初始化之后,不仅要像ListView一样要放入Adapter进行数据和布局的适配,并且还要额外加入一个LinearLayoutManager 通过自己定义LinearLayoutManager也能够实现不同的动画效果,和移动效果。 RecyclerView的Adapter和ListView的Adapter也是不同的。

    35620编辑于 2022-01-11
  • 来自专栏Android开发与分享

    【Android】RecyclerView的使用

    RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerview); //设置为Listview样式 LinearLayoutManager layoutManager = new LinearLayoutManager(this); recyclerView.setLayoutManager(layoutManager); RecylcerView设置adapter recyclerView.setAdapter(adapter); 这里将Recycler设置成了ListView样式,若需要GridView样式只需要将 LinearLayoutManager layoutManager = new LinearLayoutManager(this); 改为 int arrayNum = 2;//GridView样式时的列数 GridLayoutManager ); //横向显示 layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); 完成一次RecyclerView的简单使用,来看看效果

    1.5K50发布于 2018-05-18
领券