当前位置: 首页 > news >正文

门户网站建设申请利用表单大师做网站

门户网站建设申请,利用表单大师做网站,做网站的项目策划书,做网站哪个地方需要钱问题的提出 当我们写一个Recycleview时,默认的效果大概是这样的: 当然,我们也可以用表格布局管理器GridLayoutManager做成这样: 可以看到,默认的绘制方向是: 从左到右,从上到下 那么问题来了…

问题的提出

当我们写一个Recycleview时,默认的效果大概是这样的:
在这里插入图片描述
当然,我们也可以用表格布局管理器GridLayoutManager做成这样:
在这里插入图片描述
可以看到,默认的绘制方向是:
从左到右,从上到下
那么问题来了,如果我们想要控制列表项的布局方向,该怎么做呢?
比如,我们要做出这样的效果:
在这里插入图片描述
其实也很简单,我们可以这样初始化我们的GridLayoutManager:

GridLayoutManager(context, 3, GridLayoutManager.VERTICAL, true)

其中第三个参数reverseLayout参数是一个布尔值,用于控制列表项的布局方向。
当将其设置为true时,布局将会反转,
这意味着列表项将会从最后一个元素开始布局,向顶部或左部布局(取决于布局的方向)。换句话说,如果你有一个垂直滚动的网格布局,默认情况下,列表项会从顶部向下排列,但如果你设置了reverseLayout=true,它们就会从底部向上排列。
如果是横向的LinearLayoutManager也是一样的
这个问题解决了,那么如果我们想要左右改变方向呢?
比如让元素从右往左去绘制
如果是LinearLayoutManager自然是简单的,可以继续用reverseLayout这个参数
可以如果是GridLayoutManager呢?
比如我们要求GridLayoutManager绘制的顺序为:
从上往下,从右往左
我们就遇到问题了
这是因为LinearLayoutManager只有一个方向纬度
要么上下,要么左右
而GridLayoutManager是要考虑上下和左右两个方向的
当我们用

GridLayoutManager(context, 3, GridLayoutManager.VERTICAL, true)

改变的只是上下的方向
做出来就是上面第三张图的效果
但是现在我们要改变左右的方向
该怎么做呢?
这时候我们就要引入LayoutDirection

LayoutDirection

GridLayoutManager可以调用方法setLayoutDirection改变绘制方向,它的入参有三个选择:

// 设置为从左到右布局
myView.setLayoutDirection(View.LAYOUT_DIRECTION_LTR);

// 设置为从右到左布局
myView.setLayoutDirection(View.LAYOUT_DIRECTION_RTL);

// 布局方向从父视图继承
myView.setLayoutDirection(View.LAYOUT_DIRECTION_INHERIT);

//布局方向由系统决定(有的国家从右到左的)
LAYOUT_DIRECTION_LOCALE

于是我们可以这样写(注意这里我没有改变上下的方向,还是从上到下绘制):

GridLayoutManager(context, 3, GridLayoutManager.VERTICAL, false).apply {//向右对齐setLayoutDirection(View.LAYOUT_DIRECTION_RTL)
}

于是我们可以看到,效果是这样的:
从上到下,从右到左
在这里插入图片描述
对比原先的布局:
从上到下,从左到右
在这里插入图片描述
可以看到,方向是对了
但是数据源展示的顺序也变了
如果我们要这样的效果:
在这里插入图片描述
就需要我们自己翻转下数据源了
翻转规则也很简单
拿这种一行三个元素的举例:
如果一行有三个元素,那么第一个和第三个交换位置
如果一行有两个元素,比如最后一行,则互相交换位置
如果没有元素或者只有一个元素,不处理
这样一来,我们就可以控制好GridLayoutManager上下和左右两个纬度的绘制方向了

注意

LayoutDirection也可以在xml里面配置:
在这里插入图片描述
这样设置要注意一点:
比如我们手机默认是ltr,也就是从左到右
如果你改成从右到左
那么你给这个控件设置的方向相关的属性也会发生反转
比如你的marginLeft,这时候其实是marginRight
因为你的方向发生了反转了
关于LayoutDirection就介绍到这里

总结

对于recycleView,要改变布局方向,可以使用reverseLayout
如果要控制两个纬度的方向(上下和左右),就需要用到LayoutDirection
对于其他控件,也可以使用LayoutDirection改变自己的绘制方向
但是要注意,改变之后,之前的方向相关的属性也会发生反转

http://www.yayakq.cn/news/533715/

相关文章:

  • 制作一个自己的网站房地产新闻最新消息
  • 网站退出率开发一个app需要的技术
  • 网站的服务费账怎么做深圳网站设计合理刻
  • 网站建设推广市场wordpress打开页面慢
  • 家具网站开发目的手机优化大师下载安装
  • 国家企业公司网站建设世界排名第几
  • 网站主机免备案用vs2010做的网站
  • 免费的推广网站有哪些wordpress挖主题
  • php class 做网站做网站有软件吗
  • 什么公司需要做网站WordPress 扫码支付跳转
  • 百度收录不了网站吗在哪些网站可以做企业名称预审
  • 做网站好还是阿里巴巴做个手机app软件需要多少钱
  • 湛江cms建站系统室内设计师联盟论坛
  • 网站建设流程 知乎wordpress 插件 前端
  • 游戏开发难还是网站开发难怎么做百度网页
  • 如何建立一个私人网站担路网做网站多少钱
  • 如何做网站后台管理员wordpress 分类文章列表分页
  • 包装网站开发个人安装公司怎么注册
  • 用源码网站好优化吗外贸网站要怎么做
  • 广州易网网站建设重庆做网站_重庆网站建设_重庆网络推广_重庆网络公司
  • 网站未备案会怎么样佛山网站搭建公司哪家好
  • 做网站对公司的作用aspnet网站开发实例项目
  • 建站后角度是不是0广西南宁建设职业学图书馆网站
  • 淘金企业网站建设服务哈尔滨seo网络推广
  • 如何看网站做打好坏公司网站架构
  • 夜晚很晚视频免费素材网站公司做网站让拍照备案
  • 如何选择邯郸网站制作专业做网站制作的公司
  • access建网站如何搭建英文网站
  • 简述网站建设的过程知识库管理系统方案
  • 软件开发 网站开发 不同龙岗教育网官网