GridLayoutManager(context, 3, GridLayoutManager.VERTICAL, false).apply {
//向右对齐
setLayoutDirection(View.LAYOUT_DIRECTION_RTL)
于是我们可以看到,效果是这样的:
从上到下,从右到左
对比原先的布局:
从上到下,从左到右
可以看到,方向是对了
但是数据源展示的顺序也变了
如果我们要这样的效果:
就需要我们自己翻转下数据源了
翻转规则也很简单
拿这种一行三个元素的举例:
如果一行有三个元素,那么第一个和第三个交换位置
如果一行有两个元素,比如最后一行,则互相交换位置
如果没有元素或者只有一个元素,不处理
这样一来,我们就可以控制好GridLayoutManager上下和左右两个纬度的绘制方向了
LayoutDirection也可以在xml里面配置:
这样设置要注意一点:
比如我们手机默认是ltr,也就是从左到右
如果你改成从右到左
那么你给这个控件设置的方向相关的属性也会发生反转
比如你的marginLeft,这时候其实是marginRight
因为你的方向发生了反转了
关于LayoutDirection就介绍到这里
对于recycleView,要改变布局方向,可以使用reverseLayout
如果要控制两个纬度的方向(上下和左右),就需要用到LayoutDirection
对于其他控件,也可以使用LayoutDirection改变自己的绘制方向
但是要注意,改变之后,之前的方向相关的属性也会发生反转
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_heigh
利用recyclerview
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_paren
MainActivity
package com.example.yuekaomoni.com.example;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.DividerItemDecoration;
import andro...
Android屏幕显示范围有限,在数据可视化需求中经常要使用这样的表格:横向纵向都能滑动,左侧栏目固定,右边可以整体上下左右滑动。例如股票、证券、课程表、值日表、Excel等等
主要就是分为 标题 和 内容 两部分,其中内容部分一般都是嵌套RecyclerView,使得标题和内容左右横向滑动时是一起滑动的,且不能错位。
在之前的项目中曾经做过电商分类页面左右两个列表联动的实现,当时的做法是左侧列表使用RecycleView,右侧列表使用的是ScrollView,通过onOverScrolled方法来检测右侧列表是否已经到达了顶部继续下拉还是已经到达了底部继续上滑。这种方式肃然也实现了左右两个列表联动的需求,但是体验上还是有继续优化的空间,之后做了一版优化,左右两个列表都是用recycleview来实现。
在getItemViewType中实现绘制itemview时所选用的类型,如下:
@Override
public int getItemViewType(int position) {
if(position == 0){
return FIRST_VIEW;
}else{
return SECOND_VIEW;
在onCreateViewHolder中实现绘制itemview时所选用的布局文件,如下:
@Override
public R.
用到的依赖库如下
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
界面中用到的Api接口来自于玩Android,同时感谢鸿洋大大的分享。
接口地址 我这里用的是体系数据相关的Api
接着是布局,xml中是一个线性布局,放置
RecyclerView实现倒序列表
android RecyclerView 倒序1、写在前面实现一个聊天界面,就是类似QQ那种,这里是讲一下倒序
排列,不实现QQ的各种高级功能2、ListView只要把
数据倒序加入到adapter的
数据集中,就可以实现倒序效果,但是,listview每次刷新都默认显示第一条
数据,但是我们想要显示的是最后一条所以刷新后需要移动到相应位置 /**
1.4 LayoutManager布局管理器
LayoutManeger布局管理器可以根据运行平台来调整组件大小,程序员不用再手动设置组件的大小和位置,只需要为容器选择合适的布局管理器即可。
1.4.1 FlowLayout(JPanel的默认布局管理器)
组件像水流一样向某方向流动(
排列),遇到障碍(边界)就折回,从头开始
排列。默认情况下,FlowLayout布局管理器从左到右
排列所有组件,遇到边界就会折回下一行重新开始。
1.来电通知栏电话号码+号显示在右侧的修改
位置:packages/apps/InCallUI/src/com/android/incallui/StatusBarNotifier.java
刚开始修改的时候,在方法buildAndSendNotification()中添加:
//add by chensenquan20160727
Configuration con =mContext.