BUG 收集

之前遇到一些开发中的问题,没有及时记下来,后来就忘了是什么问题。

现在把细小的点也记下,方便查看,避免错误。

1、xml中根节点无法通过findviewbyid找到,这里遇到的空指针debug才发现。
例如,
根节点为FrameLayout,id为main_container,
在当前Fragment的onCreateView()方法中,应该直接通过inflate给view赋值,

mContainer = (FrameLayout) inflater.inflate(Res.layout(container.getContext(), "fragment_main"), container, false);

这样再向mContainer中addView,不至于空指针:
mContainer.addView(opPromotionView.getView());

2、onCreateOptionsMenu和onPrepareOptionsMenu

  • onCreateOptionsMenu
      只执行一次
  • onPrepareOptionsMenu
      每次display menu之前调用一次,用来做update menu的动作.
  • 清空操作:menu.clear();

参考:http://blog.csdn.net/shichaosong/article/details/7309723

3、用java代码实现布局,addRule的用法

//示例:水平居中、位于下方
int width = getResources().getDisplayMetrics().widthPixels;
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(width / 2, (int) (0.77 * width / 2));
    lp.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
    imgWifi.setLayoutParams(lp);
    RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(width * 2 / 3, 140);
    lp1.topMargin = 40;
    lp1.addRule(RelativeLayout.BELOW, Res.id(this, "tv_msg"));
    lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
    settingWifiBtn.setLayoutParams(lp1);

//沿着父容器底部
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,1);
        params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);//作用同xml中layout_alignParentBottom
        if (isLastChild) {
            params.setMargins(0, 0, 0, 0);//最后一个孩子节点的下边线要齐头
        } else {
            params.setMargins(200, 0, 0, 0);
        }
        holder.divider.setLayoutParams(params);

4、自定义View去掉锯齿
两种方式:

//利用Paint
paint.setAntiAlias(true);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
//利用Canvas
DrawFilter pfdf = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);
 canvas.setDrawFilter(pfdf);

5、后续更新

你可能感兴趣的:(bug,调试)