/** 更新餐厅信息 */ private void updateInfo() { ImageFetcher.asInstance() .loadRoundedCorner(mRestaurant.getImage(), mRestaurantImageView, ScreenUtils.dip2px(1)); mScoreCountView.setText(mRestaurant.getGrade()); mSaleCountView.setText(mRestaurant.getSale()); setTitle(mRestaurant.getName()); }
@Override protected View newView(int viewType) { switch (viewType) { case ITEM_TYPE_TWO: View view_double = LayoutInflater.from(getContext()).inflate(R.layout.listview_item_dish, null); View itemLeft = view_double.findViewById(R.id.app_list_item_left); View itemRight = view_double.findViewById(R.id.app_list_item_right); setViewStatues(itemLeft); setViewStatues(itemRight); int itemViewWidth = (ScreenUtils.getScreenWidthInt() - 3 * ScreenUtils.dip2px(8)) / 2; ScreenUtils.resizeView( itemLeft.findViewById(R.id.app_dish_cover_group), itemViewWidth, 1f); ScreenUtils.resizeViewOfWidth( itemLeft.findViewById(R.id.app_dish_title_group), itemViewWidth); ScreenUtils.resizeView( itemRight.findViewById(R.id.app_dish_cover_group), itemViewWidth, 1f); ScreenUtils.resizeViewOfWidth( itemRight.findViewById(R.id.app_dish_title_group), itemViewWidth); ScreenUtils.reMargin( itemLeft.findViewById(R.id.app_dish_restaurant_group), 0, 0, 0, 75, true); ScreenUtils.reMargin( itemRight.findViewById(R.id.app_dish_restaurant_group), 0, 0, 0, 75, true); View coverL = itemLeft.findViewById(R.id.app_dish_content); ScreenUtils.resizeView(coverL, itemViewWidth, 251.5f / 172.5f); View coverR = itemRight.findViewById(R.id.app_dish_content); ScreenUtils.resizeView(coverR, itemViewWidth, 251.5f / 172.5f); return view_double; case ITEM_TYPE_ONE: default: View view_single = LayoutInflater.from(getContext()).inflate(R.layout.view_dish_big, null); setViewStatues(view_single); int itemViewWidthBig = ScreenUtils.getScreenWidthInt() - 2 * ScreenUtils.dip2px(8); View content = view_single.findViewById(R.id.app_dish_content); ScreenUtils.resizeView(content, itemViewWidthBig, 257 / 355f); return view_single; } }
@Override public View onCreateView( LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (view != null) { return view; } view = inflater.inflate(R.layout.fragment_restaurant_detail, null); mPullToZoomListView = (PullToZoomListView) view.findViewById(R.id.app_restaurant_detail_list); mPullToZoomListView.setHeaderViewSize( ScreenUtils.getScreenWidthInt(), (int) (210f * ScreenUtils.getScreenWidthInt() / 375f)); mPullToZoomListView.setOnListViewZoomListener( new PullToZoomListView.OnListViewZoomListener() { @Override public void onHeaderZoom(float f) { Rect categorySize = ScreenUtils.getViewSize(mCategoryLayout); Rect categoryTitlebarSize = ScreenUtils.getViewSize(mTitleBarCategoryLayout); if (categoryTitlebarSize.top > 0 && categorySize.top > 0) { if (mAnimators.isEmpty()) { mAnimatorDuration = categorySize.top - categoryTitlebarSize.top; defaultAnimationTime = (int) mAnimatorDuration; createAnimation(mAnimatorDuration); } int offset = categorySize.top - categoryTitlebarSize.top; if (offset <= 0) { // 显示 mTitleBarCategoryLayout.setVisibility(View.VISIBLE); mCategoryLayout.relationWith(null); mTitleBarCategoryLayout.relationWith(mCategoryLayout); getTitleBar().enableBottomDiv(true); } else { mTitleBarCategoryLayout.setVisibility(View.GONE); mTitleBarCategoryLayout.relationWith(null); mCategoryLayout.relationWith(mTitleBarCategoryLayout); getTitleBar().enableBottomDiv(false); } updateZoomAnimator(mAnimatorDuration - offset); } } }); mHeadView = mPullToZoomListView.getHeaderView(); mHeadImageView = (ImageView) mHeadView.findViewById(R.id.app_list_head_image); mHeadImageView.setImageResource(R.drawable.app_bg_restaurant); mNoticeView = (FrameLayout) mHeadView.findViewById(R.id.app_list_head_notice); mRestaurantImageView = (ImageView) mHeadView.findViewById(R.id.app_restaurant_detail_image); mScoreCountView = (TextView) mHeadView.findViewById(R.id.app_restaurant_detail_score_title); mScoreDescView = (TextView) mHeadView.findViewById(R.id.app_restaurant_detail_score_desc); mHeadView .findViewById(R.id.app_restaurant_detail_score) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // 用户评论 LogGather.onEventDishRestaurantDetailGoEvaluate(); Bundle bundle = new Bundle(); bundle.putString(DishRestaurantCommentFragment.EXTRA_RESTAURANT_ID, mRestaurantId); next(DishRestaurantCommentFragment.class, bundle); } }); mSaleCountView = (TextView) mHeadView.findViewById(R.id.app_restaurant_detail_sale_title); mHeadView .findViewById(R.id.app_restaurant_detail_sale) .setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { // 热门销量 LogGather.onEventDishRestaurantDetailGoSale(); Bundle bundle = new Bundle(); bundle.putString(DishHotSaleListFragment.EXTRA_RESTAURANT_ID, mRestaurantId); next(DishHotSaleListFragment.class, bundle); } }); mRestaurantNoticeView = view.findViewById(R.id.app_restaurant_detail_notice); mRestaurantNoticeContentView = (TextView) view.findViewById(R.id.app_restaurant_detail_notice_content); mTitleBarCategoryLayout = (DishCategoryView) view.findViewById(R.id.app_restaurant_detail_anchor); mCategoryLayout = (DishCategoryView) inflater.inflate(R.layout.view_category_order, null); mCategoryLayout.relationWith(mTitleBarCategoryLayout); mCategoryLayout.setHandler( new DishCategoryView.OnCategoryOrderHandler() { @Override public void onOrderItemClick(int position) { requestDishList(); } @Override public void onCategoryItemClick(Tags tag) { requestDishList(); } }); int default_menu_icon = default_dish_mode.equals(DishDetailAdapter.DISH_MODE_SINGLE) ? R.drawable.app_ic_layout_mode_small : R.drawable.app_ic_layout_mode_big; mTitleBarCategoryLayout.getmOrderByChooseView().setSwitchImg(default_menu_icon); mCategoryLayout.getmOrderByChooseView().setSwitchImg(default_menu_icon); mTitleBarCategoryLayout .getmOrderByChooseView() .setOnMenuItemClick( new DishOrderByView.OnMenuItemClick() { @Override public void OnClick(View v) { changeAdapterMode(v); } }); mCategoryLayout .getmOrderByChooseView() .setOnMenuItemClick( new DishOrderByView.OnMenuItemClick() { @Override public void OnClick(View v) { changeAdapterMode(v); } }); return view; }