代码review-曾经踩过的坑,好的编程习惯

1,字符串的replace,substring 等操作一定要先判空处理
2,需要控件资源的回调必须在生命周期内完成,否则就要及时取消注册 ,防止空指针引起的崩溃

比如

    protected CompositeDisposable mDisposables = new CompositeDisposable();
    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mDisposables != null) {
            mDisposables.clear();
        }
        listenerList.clear();
        listenerList = null;
        mHandler.removeCallbacksAndMessages(null);
        removeFromRefreshCache();
    }
        mDisposables.add(RxHttp.call(RequestCommand.COMMAND_HS_RANKING_NEW, params, StockRiseFail::class.java) { stockRiseFail ->
                for ((index, itemData) in stockRiseFail.list.withIndex()) {
                    stockDataInfoList[index + firstIndex] = itemData
                }
                mainAdapter.notifyItemRangeChanged(firstIndex, endIndex)
        })

3,类型转换的问题:

比如上层是LinearLayout时,需要这个new LinearLayout.LayoutParams

    private void setStatusBarLayout() {
        if (UINotchHelper.has3rdNotch(baseActivity)) {
            rl_login_layout.setLayoutParams(new LinearLayout.LayoutParams(rl_login_layout.getLayoutParams().width, rl_login_layout.getLayoutParams().height + UIStatusBarHelper.getStatusbarHeight(getContext())));
            rl_login_layout.setPadding(rl_login_layout.getPaddingLeft(), rl_login_layout.getPaddingTop() + UIStatusBarHelper.getStatusbarHeight(getContext()), rl_login_layout.getPaddingRight(), rl_login_layout.getPaddingBottom());
        }
    }
    private void setStatusBarLayout() {
        if (UINotchHelper.has3rdNotch(baseActivity)) {
            ViewGroup.LayoutParams layoutParams = rl_login_layout.getLayoutParams();
            layoutParams.height += UIStatusBarHelper.getStatusbarHeight(getContext());
            rl_login_layout.setLayoutParams(layoutParams);
            rl_login_layout.setPadding(0, CommonDataManager.getDensityValue(23, baseActivity) + UIStatusBarHelper.getStatusbarHeight(getContext()), 0, CommonDataManager.getDensityValue(20, baseActivity));
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容