Exemple #1
0
  // 初始化每个页面的数据
  private void initPageView(LinearLayout root, int i) {
    DayBean bean = data.getContent().get(i);
    int layoutIndex = lastDayTime != bean.getTime() ? 0 : (bean.getSrc().length == 1 ? 1 : 2);
    LinearLayout.LayoutParams params =
        new LinearLayout.LayoutParams(ScreenUtils.getScreenW(), ScreenUtils.getScreenH());
    View v = View.inflate(getContext(), layoutIds[layoutIndex], null);
    v.setLayoutParams(params);
    if (layoutIndex == 0) {
      initItem1(v, bean);
      lastDayTime = bean.getTime();
      nowDay++;
      root.addView(v);
      pageViews.add(new PageView(v, pageSum, bean, true));
      pageSum++;
      // 如果是日期页面,则继续加载
      params = new LinearLayout.LayoutParams(ScreenUtils.getScreenW(), ScreenUtils.getScreenH());
      layoutIndex = (bean.getSrc().length == 1 ? 1 : 2);
      v = View.inflate(getContext(), layoutIds[layoutIndex], null);
      v.setLayoutParams(params);
    }
    if (layoutIndex == 1) {
      initItem2(v, bean);
    } else {
      initItem3(v, bean);
    }

    root.addView(v);
    pageViews.add(new PageView(v, pageSum, bean, false));
    pageSum++;
  }
Exemple #2
0
 // 滚动停止 ,重置view
 private void resetView() {
   int dis = getScrollX() % ScreenUtils.getScreenW();
   if (Math.abs(dis) >= ScreenUtils.getScreenW() / 2) {
     distance = ScreenUtils.getScreenW() - dis;
   } else {
     distance = dis * -1;
   }
   handler.sendEmptyMessageDelayed(autoScroll, SpaceTime);
 }
Exemple #3
0
 @Override
 public void handleMessage(Message msg) {
   super.handleMessage(msg);
   switch (msg.what) {
     case -10086:
       if (lastX == getScrollX()) {
         resetView();
       } else {
         if (Math.abs(getScrollX() - lastX) <= MINSPEED) {
           stopScroll();
         } else {
           handler.sendMessageDelayed(handler.obtainMessage(ViewScrollTag), SpaceTime);
         }
         lastX = getScrollX();
       }
       break;
     case 1: // 自动滚动
       int add = distance > 0 ? 1 : -1;
       if (Math.abs(distance) > speed) {
         scrollTo(speed * add + getScrollX(), 0);
         sendEmptyMessageDelayed(autoScroll, SpaceTime);
         distance -= speed * add;
       } else {
         scrollTo(distance * add + getScrollX(), 0);
         distance = 0;
         nowPage = getScrollX() / ScreenUtils.getScreenW();
         Log.e(TAG, nowPage + "");
         if (onPageSelectItem != null) {
           onPageSelectItem.onSelect(pageViews.get(nowPage));
         }
       }
       break;
   }
 }