Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class CustomView extends FrameLayout {
- private TextView nameView;
- private TextView emailView;
- private ImageView addressView;
- private Tracks track ;
- private double scrollProgress = 0.0;
- private double topViewScaleFactor = 2.0;
- private double collapsedViewHeight = 200.0;
- private double expandedViewHeight = 700.0;
- private double scrollProgressPerView = expandedViewHeight;
- View v;
- View firstItem;
- View secondView;
- int itemMinHeight = 200;
- int itemMaxHeight = 700;
- public CustomView(MyScrollView paramEventListView, Context paramContext){
- super(paramContext);
- }
- public CustomView(Context context) {
- super(context);
- // TODO Auto-generated constructor stub
- }
- public CustomView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- // TODO Auto-generated constructor stub
- }
- public CustomView(Context context, AttributeSet attrs) {
- super(context, attrs);
- // TODO Auto-generated constructor stub
- }
- @Override
- protected void onLayout(boolean changed, int l, int t, int r, int b) {
- // TODO Auto-generated method stub
- int m = getMeasuredWidth();
- int itemWidth = (r-l)/getChildCount();
- // int itemHeight = (b-t)/getChildCount();
- firstItem = getChildAt(0);
- //firstItem.layout(0, 0, r-l, itemMaxHeight);
- firstItem.measure(View.MeasureSpec.makeMeasureSpec(m, MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(itemMaxHeight, MeasureSpec.EXACTLY));
- firstItem.layout(0, 0, r-l, itemMaxHeight);
- secondView = getChildAt(1);
- secondView.measure(View.MeasureSpec.makeMeasureSpec(m, MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(itemMinHeight, MeasureSpec.EXACTLY));
- secondView.layout(0, itemMaxHeight, r-l, itemMinHeight+itemMaxHeight);
- int FirstAndSEcondItemHeight = firstItem.getHeight() + secondView.getHeight();
- for(int i=2; i< this.getChildCount(); i++){
- v = getChildAt(i);
- // v.layout(itemWidth*i, 0, (i+1)*itemWidth, b-t);
- v.layout(0, FirstAndSEcondItemHeight + (itemMinHeight*(i-2)), r-l, FirstAndSEcondItemHeight + ((i-1)*itemMinHeight));
- }
- }
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- // TODO Auto-generated method stub
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- int heightMeasured = 0;
- /*for each child get height and
- heightMeasured += childHeight;*/
- for(int i=0; i< this.getChildCount(); i++){
- heightMeasured += getChildAt(i).getHeight();
- }
- //If I am in a scrollview i got heightmeasurespec == 0, so
- if(heightMeasureSpec == 0){
- heightMeasureSpec = MeasureSpec.makeMeasureSpec(heightMeasured, MeasureSpec.EXACTLY);
- }
- setMeasuredDimension(getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec), getDefaultSize(this.getSuggestedMinimumHeight(), heightMeasureSpec));
- }
- public class MyScrollView extends ScrollView{
- public MyScrollView(Context context) {
- super(context);
- }
- public MyScrollView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- add(context);
- }
- public MyScrollView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- public void setScrollViewListener(ScrollViewListener scrollViewListener) {
- this.scrollViewListener = scrollViewListener;
- }
- @Override
- protected void onScrollChanged(int x, int y, int oldx, int oldy) {
- super.onScrollChanged(x, y, oldx, oldy);
- // How can I acces to each child in the customView class, and change their height depending on the scrollChanged
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement