/* * Copyright (c) 2016 Zhang Hai <Dreaming.in.Code.ZH@Gmail.com> * All Rights Reserved. */ package me.zhanghai.android.douya.profile.ui; import android.content.Context; import android.util.AttributeSet; import android.view.View; import butterknife.BindDimen; import butterknife.ButterKnife; import me.zhanghai.android.douya.R; import me.zhanghai.android.douya.profile.util.ProfileUtils; import me.zhanghai.android.douya.ui.FlexibleSpaceContentLayout; public class ProfileContentLayout extends FlexibleSpaceContentLayout { @BindDimen(R.dimen.screen_edge_horizontal_margin) int mScreenEdgeHorizontalMargin; @BindDimen(R.dimen.single_line_list_item_height) int mSingleLineListItemHeight; @BindDimen(R.dimen.card_vertical_margin) int mCardVerticalMargin; @BindDimen(R.dimen.card_shadow_vertical_margin) int mCardShadowVerticalMargin; @BindDimen(R.dimen.horizontal_divider_height) int mHorizontalDividerHeight; private boolean mUseWideLayout; public ProfileContentLayout(Context context) { super(context); init(); } public ProfileContentLayout(Context context, AttributeSet attrs) { super(context, attrs); init(); } public ProfileContentLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } public ProfileContentLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); init(); } private void init() { ButterKnife.bind(this); mUseWideLayout = ProfileUtils.shouldUseWideLayout(getContext()); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { if (mUseWideLayout) { int width = MeasureSpec.getSize(widthMeasureSpec); int paddingLeft = ProfileUtils.getAppBarWidth(width, getContext()) - mScreenEdgeHorizontalMargin; setPadding(paddingLeft, getPaddingTop(), getPaddingRight(), getPaddingBottom()); int height = MeasureSpec.getSize(heightMeasureSpec); View contentView = getContentView(); int contentPaddingTop = height * 2 / 5 - mSingleLineListItemHeight - (mCardVerticalMargin - mCardShadowVerticalMargin) - mHorizontalDividerHeight; contentView.setPadding(contentView.getPaddingLeft(), contentPaddingTop, contentView.getPaddingRight(), contentView.getPaddingBottom()); } super.onMeasure(widthMeasureSpec, heightMeasureSpec); } }