@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; }