【Android】 今日问题记录2015/11/9
2015-11-09 22:17
666 查看
1.Android Studio内存分配
2.使用RecyclerView,item insert动画问题
首先是从另一个activity返回有RV的Activity,如果直接在resume里执行notifyItemInsert是看不到动画效果的,需要延迟执行,用handler ,postDelay或者线程delay都可以
另一个存在的问题是,如果直接list.add,adapter.notify,也看不到想要的item被添加到RV的头部,需要先将RV滚动至position= 0的位置,代码如下:
方法2:
如果这里使用notifyDataSetChanged()来刷新屏幕上显示的所有item可以吗?结果不会出错,但是会有一个问题,前面调用了notifyItemInserted()方法后会在执行动画,如果你调用notifyDataSetChanged()刷新屏幕上显示的所有item的话,必然也会刷新当前正在执行动画的那个item,这样导致的结果是,前面的动画还没执行完,它马上又被刷新了,动画就看不见了。所以只要刷新2以后的item就可以了。
3.判断RecyclerView是否滚动到最后一条:
外链
关键代码:
4.通知RecyclerView添加了数据:
5.split 正则表达式
String对象的split方法里面采用了Pattern的split方法实现,所以,正则表达式中的某些符号需要正则转义才能得到正确的分割结果。
6.Google java风格指南
7.cardView 使用示例:
外链
CardView继承自FrameLayout,可以方便地设置圆角,阴影,ui要求不那么高时可以用一用
2.使用RecyclerView,item insert动画问题
首先是从另一个activity返回有RV的Activity,如果直接在resume里执行notifyItemInsert是看不到动画效果的,需要延迟执行,用handler ,postDelay或者线程delay都可以
另一个存在的问题是,如果直接list.add,adapter.notify,也看不到想要的item被添加到RV的头部,需要先将RV滚动至position= 0的位置,代码如下:
mRecyclerView.scrollToPosition(0); meList.add(0, localMEs.get(localMEs.size() - 1)); mAdapter.notifyItemInserted(0);
方法2:
如果这里使用notifyDataSetChanged()来刷新屏幕上显示的所有item可以吗?结果不会出错,但是会有一个问题,前面调用了notifyItemInserted()方法后会在执行动画,如果你调用notifyDataSetChanged()刷新屏幕上显示的所有item的话,必然也会刷新当前正在执行动画的那个item,这样导致的结果是,前面的动画还没执行完,它马上又被刷新了,动画就看不见了。所以只要刷新2以后的item就可以了。
1 Person person = new Person(i, "WangJie_" + i, 10 + i); 2 adapter.notifyItemInserted(2); 3 personList.add(2, person); 4 adapter.notifyItemRangeChanged(2, adapter.getItemCount());
3.判断RecyclerView是否滚动到最后一条:
外链
关键代码:
mRecyclerView.getLayoutManager().getPosition(lastChild) == mRecyclerView.getLayoutManager().getItemCount() - 1
4.通知RecyclerView添加了数据:
// param1:start postion // param2:count mAdapter.notifyItemRangeInserted(sp, count);
5.split 正则表达式
String对象的split方法里面采用了Pattern的split方法实现,所以,正则表达式中的某些符号需要正则转义才能得到正确的分割结果。
String[] aa = "aaa|bbb|ccc".split("|"); //String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果 for (int i = 0 ; i <aa.length ; i++ ) { System.out.println("--"+aa); }
6.Google java风格指南
7.cardView 使用示例:
外链
CardView继承自FrameLayout,可以方便地设置圆角,阴影,ui要求不那么高时可以用一用
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:card_view="http://schemas.android.com/apk/res-auto" ... > <!-- A CardView that contains a TextView --> <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto" android:id="@+id/card_view" android:layout_gravity="center" android:layout_width="200dp" android:layout_height="200dp" card_view:cardCornerRadius="4dp"> <TextView android:id="@+id/info_text" android:layout_width="match_parent" android:layout_height="match_parent" /> </android.support.v7.widget.CardView> </LinearLayout>
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories