美文网首页
android部分踩坑文档

android部分踩坑文档

作者: 过眼云烟_b6bf | 来源:发表于2020-08-28 15:09 被阅读0次

    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

    来源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:android部分踩坑文档

          本文链接:https://www.haomeiwen.com/subject/woelsktx.html