private void initPageView() {
    flPage = new FrameLayout(getContext());
    flPage.setOnClickListener(this);

    // 宫格列表的容器,为了“下对齐”,在外部包含了一个FrameLayout
    LinearLayout llPage =
        new LinearLayout(getContext()) {
          public boolean onTouchEvent(MotionEvent event) {
            return true;
          }
        };
    llPage.setOrientation(LinearLayout.VERTICAL);
    int resId = getBitmapRes(getContext(), "share_vp_back");
    if (resId > 0) {
      llPage.setBackgroundResource(resId);
    }
    FrameLayout.LayoutParams lpLl =
        new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    lpLl.gravity = Gravity.BOTTOM;
    llPage.setLayoutParams(lpLl);
    flPage.addView(llPage);

    // 宫格列表
    grid = new PlatformGridView(getContext());
    grid.setEditPageBackground(bgView);
    LinearLayout.LayoutParams lpWg =
        new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    grid.setLayoutParams(lpWg);
    llPage.addView(grid);

    // 取消按钮
    btnCancel = new Button(getContext());
    btnCancel.setTextColor(0xffffffff);
    btnCancel.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 20);
    resId = getStringRes(getContext(), "cancel");
    if (resId > 0) {
      btnCancel.setText(resId);
    }
    btnCancel.setPadding(0, 0, 0, cn.sharesdk.framework.utils.R.dipToPx(getContext(), 5));
    resId = getBitmapRes(getContext(), "btn_cancel_back");
    if (resId > 0) {
      btnCancel.setBackgroundResource(resId);
    }
    LinearLayout.LayoutParams lpBtn =
        new LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, cn.sharesdk.framework.utils.R.dipToPx(getContext(), 45));
    int dp_10 = cn.sharesdk.framework.utils.R.dipToPx(getContext(), 10);
    lpBtn.setMargins(dp_10, dp_10, dp_10, dp_10);
    btnCancel.setLayoutParams(lpBtn);
    llPage.addView(btnCancel);
  }