1.事件处理
轮播: 事件的分发 ,事件的拦截,事件的处理
2.listview混排注意事项
getViewTypeCount()
getItemViewType
3.高度测量
listview嵌套listview
listview嵌套grideView
scrolView嵌套listview
评论string过长后显示不全的问题 首先要给Texview 添加几个属性
android:ellipsize="none"然后发现添加完这几个属性后并没有什么反应,那它不折行那问题肯定是string的长度挤到了外面那就给textViewx限制下宽度好像不太合理所以就给textView 外面套一个linnerlayout 设置它的width 为一个固定值这样知道textView长度够的时候它才会限制,所以对textView的影响没有
android:lineSpacingExtra="4dp"
android:maxLines="100"
android:scrollHorizontally="false"
public static void setListViewHeightBasedOnChildren(ListView listView) {
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
for (int i = 0; i < listAdapter.getCount(); i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight
+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
listview 嵌套grideview 需要自定义Grideview 来禁止内滑动,主要的是重写on measure方法,进行测量
public class NoScrollGridView extends GridView {
public NoScrollGridView(Context context) {
super(context);
}
public NoScrollGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public NoScrollGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
4.android 6.0适配问题
5.友盟分享的各种坑
文档上说快速集成只需10分钟,其实他妹的扯犊子
1).首先就是Ui 不合适特别是自定义的按钮的图片大小累蒙圈我们的设计师了
问题: 自定义按钮的图片默认被友盟拉大和其他icon 区别出来是自定按钮
解决方案:请求设计师做一套留有空白边的icon 这样就解决方案了,图片的大小我已经留了下来,避免下回重复此工作
2).qq控件分享不成功
问题:分享链接错误 因为我们的应用还没有上线,所以分享的链接是本地搭建的服务器地址,比如:"http://192.168.1.132:8001/app“
解决方案:分享链接最好用带域名的链接,不要使用带ip地址的链接
3).集成错误的 qq appId
问题:清单文件的qq activity de scheme id 问题
解决方案:id 前面需要加上tencent
<data android:scheme="tencent100519554" />
4).微信分享文案的问题
问题:明明给温馨设置了分享内容可是文案莫名的消失了
解决方案:微信的分享文案和其他的分享平台不一样不是放在text 里面而是放在了title 里面所以要把分享文案放在titile 里面
5)。新浪继承问题
问题: 找不到集成新浪的so 文件
解决方案: 把所有so文件放在libs 目录 并且要在gradle 里面指定下so 文件所在的位置,在按android 下加入
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
6).各个平台的title 问题 效果不一样
- qq空间和微信不设置标题,标题就默认显示内容了.就是说内容重复显示了2次
- 微信朋友圈如果设置了标题,那么内容就不显示了
- 新浪微博没这个功能
总结: 最好给每个平台都设置titile 这样就不会出现分享失败的原因,并且微信的title text 要特使对待, 并且分享的链接,图片,要注意大小
7).分享的相关代码最好写在一个公共的累里面,这样方便奇台切面的调用,也减少了代码的冗余
6.推送的集成问题
这里只能说 grade 里面的applicationId 一定要是自己的包名一定要正确正确!!!!!
7.适配问题:
1).写布局文件的时候一定要把每个view的background设置下,不然在每个手机跑出来的界面你永远都不知道是个什么德行
2).基于android 6.0动态获取权限
3).华为荣耀底下的黑条布局适配问题
4).按钮无响应的问题,原来如果两个布局叠放在在一起默认的如果不特殊处理,每个手机点击效果是不一样的哦 ,固 要把小面的点击事件设置为false
8.代码优化,能提取的代买尽量前期全部提取方便后面的页面调用
1)每个页面的title 和底部的Bar
2)能够复用的布局以及差别不是很大布局样式尽量写在一起
9.两个activity 传递的是对象数组的时候需要注意!!注意
问题: 正常我们只需要在javabeen里面集成 Serializable 就可以了,可是发现数据传递不过去,还报出来莫名的错误这是为什么呢为什么呢!!!
解决方案: 继承了Serializable 这个类的内部类也需要集成 Serializable