@Override
 protected boolean goRight() {
   PropotionerView v = (PropotionerView) getCurrentView();
   boolean a = super.goRight();
   if (a) {
     v.exit();
     ((PropotionerView) getCurrentView()).enter();
   }
   return a;
 }
 public void init(String type) {
   mStartType = type;
   removeAllViews();
   Map<String, Object> m = new HashMap<String, Object>();
   m.put("type", type);
   if (mFactory != null) {
     View v = mFactory.getView(m, getContext());
     if (v != null) {
       PropotionerView view;
       view = new PropotionerView(v, this);
       view.init();
       this.addView(view);
       view.enter();
     }
   }
 }
 @Override
 public void onViewProposed(View parent, View v) {
   if (parent != getCurrentView()) {
     return;
   }
   for (int i = getChildCount() - 1; i > getDisplayedChild(); i--) {
     removeViewAt(i);
   }
   if (v == null) {
     return;
   }
   PropotionerView pv = new PropotionerView(v, this);
   pv.init();
   super.addView(pv);
   goRight();
   getCurrentView().requestFocus();
 }