ViewTreeObserver用法示例
来源:互联网 发布:如何申请淘宝 编辑:程序博客网 时间:2024/06/18 13:21
ViewTreeObserver可以监听View的布局变化,它有多个监控接口。
这里以OnGlobalLayoutListener为例,简单记录一下它的使用方法:
//我们以RecyclerView为例,目的是动态调整RecyclerView每一行成员的数目@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_photo_gallery, container, false); //找到RecyclerView mPhotoRecyclerView = (RecyclerView) v.findViewById(R.id.fragment_photo_gallery_recycler_view); //获取RecyclerView的ViewTreeObserver ViewTreeObserver viewTreeObserver = mPhotoRecyclerView.getViewTreeObserver(); //为ViewTreeObserver添加一个OnGlobalLayoutListener viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { private int last = 0; //当布局发生变化,即绘制RecyclerView时就会回调onGlobalLayout接口 @Override public void onGlobalLayout() { if (getView() != null) { //在xml中,我们定义RecyclerView的宽度是match_parent //于是,设备旋转时,width就会发生改变 int width = getView().getWidth(); //指定每个成员的宽度为400,得到每一列可放置的成员数量 int count = width / 400; //发生改变时,就重新设置RecyclerView的LayoutManager if (last != count) { //每次改变LayoutManger后,RecyclerView均会重绘 //于是横竖屏切换后,每一行可以动态地放置成员的数量 mPhotoRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), count)); last = count; } } } }); setupAdapter(); return v;}
0 0
- ViewTreeObserver用法示例
- ViewTreeObserver示例(二)
- ViewTreeObserver示例(一)
- ViewTreeObserver的用法
- android viewTreeObserver用法详细解读
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver?
- ViewTreeObserver
- ViewTreeObserver
- ViewTreeObserver.OnPreDrawListener
- 九度题目1202的解决
- java 解析 json
- C#实现窗口最小化到系统托盘
- Linux环境下Java对进程的操作
- Traversing an Array in Node.js
- ViewTreeObserver用法示例
- java IO
- iOS点方法使用
- 对象导论
- 关于Java构造器的一点归纳
- Window XP驱动开发(二) 环境搭建(VS2008+WDK+DDKWzard)及示例源码分析
- 复选框数据请求到后台
- 文件打开模式和文件对象方法
- 深度学习triplet loss 做人再识别(person-reid)