Android 坑神

作者: 汪简书 | 来源:发表于2017-07-12 15:51 被阅读68次

    以下内容为本人踩过的坑,望看到这能让你踩着我的头过去吧:)

    1. xml 中分割线要用 View,不是 view

    2. 关闭资源、pop、键盘需在 onPause() 中,而不是 onStop()

    3. js 调用 Android 方法,该方法的形参最好是 String 类型,否则H5 页面中有多个 js 方法调用 Android 方法,形参是 int 为 0;

        // 进入 大主页
        @JavascriptInterface
        public void lookUserDetailedInfor(String id) { //对应js中 douQuJS.lookUserDetailedInfor(data); ps:js 调用 Android 方法,该方法的形参最好是 String 类型,否则H5 页面中有多个 js 方法调用 Android 方法,形参是 int 为 0;
            NSLog.w(TAG, "WebViewFragment{} ... lookUserDetailedInfor() --> id = " + id);
        }
    
    1. setClickable(true)不起作用 : setClickable(false)要放在setOnClickListener后面,否则会不起作用

    2. 当一个 view 不显示时,考虑是不是 在 new XXView() 的同时 ButterKnife 也创建一个 字段 xxView;

    3. git pull 更新最新代码时 而本地代码有改动时会报error:

    error: Your local changes to the following files would be overwritten by merge:
            app/src/main/java/com/blankj/androidutilcode/activity/KeyboardActivity.java
    Please commit your changes or stash them before you merge.
    Aborting
    

    解决方法:

    git checkout -f
    git pull
    
    1. 有时不弹键盘,scrollTo() 不灵,可以这样尝试下:
        HandlerUtil.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                KeyboardUtil.showSoftInput(et_new_label);
            }
        }, 100);
    
    1. 检查项目所有的依赖包dependencies:
    ./gradlew -q dependencies <module-name>:dependencies --configuration compile
    
    1. ScrollView中监听setOnScrollChangeListener Y的位置改变titleBar的透明度,有时会影响别的页面的底色,很奇怪。这样这样尝试下:
        rl_family_title_bar.setBackgroundColor(Color.WHITE); // 若修改此 view 的透明度,必须在代码里设置背景,否则会影响一些页面的底色
        rl_family_title_bar.getBackground().setAlpha(0);
    
        nsv_root.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
            @Override
            public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                int alpha = 255 * scrollY / LocalDisplay.dp2px(257);
                if (alpha < 0) {
                    alpha = 0;
                } else if (alpha > 255) {
                    alpha = 255;
                }
                rl_family_title_bar.getBackground().setAlpha(alpha);
                if(alpha < 128) {
                    tv_title.setTextColor(Color.WHITE);
                    iv_back.setImageResource(R.drawable.btn_menu_back_white);
                } else {
                    tv_title.setTextColor(Color.BLACK);
                    iv_back.setImageResource(R.drawable.btn_menu_back);
    
                }
            }
        });
    
    1. SurfaceView闪屏问题
    getWindow().setFormat(PixelFormat.TRANSLUCENT); // in case : Android SurfaceView闪屏问题
    

    相关文章

      网友评论

        本文标题:Android 坑神

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