1、沉浸式图片状态栏使用ImageView控件,并且必须使用
android:background="@mipmap/img_mine_bg" 引入图片 不能使用双src引入!!!!!
2、单Activity多Fragment下自定义状态栏沉浸式+去除阴影+修改字体
// 自定义状态栏:沉浸式+去除阴影+黑色字体
privatevoidMyStatusBarDark(){
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//5.0及以上
View decorView = getWindow().getDecorView();
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
| WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
intoption = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
decorView.setSystemUiVisibility(option);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().setStatusBarColor(Color.TRANSPARENT);
}elseif(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//4.4到5.0
WindowManager.LayoutParams localLayoutParams = getWindow().getAttributes();
localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayoutParams.flags);
}
//修改字体颜色
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {//android6.0以后可以对状态栏文字颜色和图标进行修改
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);// SYSTEM_UI_FLAG_LIGHT_STATUS_BAR :黑色字体)(SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR :白色字体
}
3、ScrollView滑动监听
自定义ScrollView
importandroid.content.Context;
importandroid.util.AttributeSet;
importandroid.widget.ScrollView;
publicclassMyScrollViewextendsScrollView{
privateOnScrollListener listener;
publicvoidsetOnScrollListener(OnScrollListener listener){
this.listener = listener;
}
publicMyScrollView(Context context){
super(context);
}
publicMyScrollView(Context context, AttributeSet attrs){
super(context, attrs);
}
publicMyScrollView(Context context, AttributeSet attrs,intdefStyleAttr){
super(context, attrs, defStyleAttr);
}
//设置接口
publicinterfaceOnScrollListener{
voidonScroll(intscrollY);
}
//重写原生onScrollChanged方法,将参数传递给接口,由接口传递出去
@Override
protectedvoidonScrollChanged(intl,intt,intoldl,intoldt){
super.onScrollChanged(l, t, oldl, oldt);
// System.out.println("111111"+t);
if(listener !=null){
//这里我只传了垂直滑动的距离
listener.onScroll(t);
}
}
4 . Android Studio 创建module时版本不统一
Error:Execution failed for task ':app:preDebugAndroidTestBuild'.
> Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (
解决:
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:27.1.1'
}
5.
Activity退出时即时释放资源
Activity退出时所有静态变量恢复为默认值(全局静态变量)
Activity退出时移除所有Handler消息
所有的Dialog对话框调用show()方法之前必须先行判断Activity是否已经finished
EvenBus框架粘性事件使用完或退出页面时必须移除
获取Intent值前必须判断getIntent()返回是否为空
Service有效性比BroadCastReceiver更高
所有网络请求必须对各种情况做处理
作者:eagerabu
链接:https://www.jianshu.com/p/8a4049b9c280
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。