1、URL query string must not have replace block. For dynamic query parameters u
去掉url中问号后面的字段,只使用@Query注解
2、引用library中activity时R资源找不到的问题
library中layout不能与主app中layout重名
3、ListView setSelectionFromTop API17下无效的问题
放到post中执行即可
4、属性动画不能正确执行完成的问题
在使用ObjectAnimator.ofInt方法时遇到了卡顿,执行一半、不能正确执行的问题
换成ValueAnimator即可解决
5、android 5.0 设置adjustResize后,软键盘无法顶起页面
在根布局上加上fitsSystemWindow=”true”即可
6、WebView视频封面导致的bug:
Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
解决方法如下:
class MyWebChromeClient extends WebChromeClient {
@Nullable
@Override
public Bitmap getDefaultVideoPoster() {
//Android8.0以上的手机可以会遇到如下崩溃
//Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
//需要复写此方法解决
if (super.getDefaultVideoPoster() == null) {//这个地方是加载h5的视频列表 默认图 点击前的视频图
return BitmapFactory.decodeResource(getApplicationContext().getResources(), R.drawable.ic_launcher);
} else {
return super.getDefaultVideoPoster();
}
}
}
7、多Webview共存 加载异常问题
在每个webview中的onPause、onResume中依次加入以下方法即可解决问题:
webView.pauseTimers();
webView.resumeTimers();
具体原因不明。
8、华为手机popwindow背景不变暗的问题
PopupWindow popupWindow = new PopupWindow(this);
WindowManager.LayoutParams lp = getWindow().getAttributes();
//设置显示时的背景透明度0.7f
lp.alpha = 0.7f;
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().setAttributes(lp);
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams lp = getWindow().getAttributes();
//dismiss后恢复1f
lp.alpha = 1f;
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().setAttributes(lp);
}
});
关键代码:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
9、Android3.0帧动画不执行的问题
如下代码:
AnimationDrawable animationDrawable = (AnimationDrawable)imageview.getBackground();
animationDrawable.start();//启动动画
在Android3.0上会遇到不执行的问题,需修改为:
AnimationDrawable animationDrawable = (AnimationDrawable)imageview.getBackground();
imageview.post(new Runnable(){
@override
public void run(){
animationDrawable.start();//启动动画
}
})