Android Open Source - FreeFlow Free Flow Layout






From Project

Back to project page FreeFlow.

License

The source code is released under:

Apache License

If you think the Android project FreeFlow listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*******************************************************************************
 * Copyright 2013 Comcast Cable Communications Management, LLC
 * // w w  w  . j  a  v  a 2  s.c o  m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *     http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/
package com.comcast.freeflow.layouts;

import java.util.Map;

import com.comcast.freeflow.core.FreeFlowItem;
import com.comcast.freeflow.core.SectionedAdapter;

/**
 * The base class for all custom layouts. The Layout is responsible for figuring
 * out all the positions for all the views created by the Container based on the
 * <code>SectionedAdapter</code> supplied to it.
 * 
 */
public interface FreeFlowLayout {

  /**
   * Called whenever Container's onMeasure is triggered Note: We don't support
   * margin and padding yet, so the dimensions are the entire actual of the
   * Container. Note that setDimensions can be called multiple times, so don't
   * use it to recompute your frames, use computeLayout instead
   * 
   * @param measuredWidth
   *            The width of the Container
   * @param measuredHeight
   *            The height of the Container
   */
  public void setDimensions(int measuredWidth, int measuredHeight);

  public void setAdapter(SectionedAdapter adapter);

  /**
   * Generate the item proxies of all views in the given viewport, you provide
   * the left and top, the width and height are resolved from the dimensions
   * passed earlier in the setDimensions call. <br>
   * <br>
   * 
   * NOTE: Any item proxies returned by this method will be rendered, sized,
   * laid out, and animated, regardeless of whether they are on screen or not.
   * So if you would like to buffer off screen items, include them in the
   * returned hashmap. <br>
   * <br>
   * 
   * 
   * @param viewPortLeft
   *            The left bound of the viewport
   * @param viewPortTop
   *            the top bound of the viewport
   * @return HashMap of Data to itemProxies All itemProxies returned will be
   *         renedered, sized, laid out, and animated
   */
  public Map<Object, FreeFlowItem> getItemProxies(int viewPortLeft,
      int viewPortTop);

  public void setLayoutParams(FreeFlowLayoutParams params);

  public void prepareLayout();

  /**
   * Return an instance of FreeFlowItem that represents the given data. You'll
   * have to recurse through your HashMap of data items and Views and return
   * the right FreeFlowItem.
   * 
   * @param item
   * @return
   */
  public FreeFlowItem getFreeFlowItemForItem(Object item);

  public boolean horizontalScrollEnabled();

  public boolean verticalScrollEnabled();

  public int getContentWidth();

  public int getContentHeight();

  public FreeFlowItem getItemAt(float x, float y);

  public static class FreeFlowLayoutParams {

  }

}




Java Source Code List

com.comcast.freeflow.animations.DefaultLayoutAnimator.java
com.comcast.freeflow.animations.FreeFlowLayoutAnimator.java
com.comcast.freeflow.animations.NoAnimationLayoutAnimator.java
com.comcast.freeflow.animations.interpolators.EaseInOutQuintInterpolator.java
com.comcast.freeflow.core.AbsLayoutContainer.java
com.comcast.freeflow.core.FreeFlowContainerTest.java
com.comcast.freeflow.core.FreeFlowContainer.java
com.comcast.freeflow.core.FreeFlowEventListener.java
com.comcast.freeflow.core.FreeFlowItem.java
com.comcast.freeflow.core.IndexPath.java
com.comcast.freeflow.core.LayoutChangeset.java
com.comcast.freeflow.core.Section.java
com.comcast.freeflow.core.SectionedAdapter.java
com.comcast.freeflow.core.ViewPool.java
com.comcast.freeflow.debug.BaseFreeFlowEventListener.java
com.comcast.freeflow.debug.TouchDebugUtils.java
com.comcast.freeflow.examples.artbook.AboutActivity.java
com.comcast.freeflow.examples.artbook.ArtbookActivity.java
com.comcast.freeflow.examples.artbook.data.DribbbleDataAdapter.java
com.comcast.freeflow.examples.artbook.layouts.ArtbookLayout.java
com.comcast.freeflow.examples.artbook.models.DribbbleFeed.java
com.comcast.freeflow.examples.artbook.models.DribbbleFetch.java
com.comcast.freeflow.examples.artbook.models.Player.java
com.comcast.freeflow.examples.artbook.models.Shot.java
com.comcast.freeflow.examples.freeflowphotogrid.MainActivity.java
com.comcast.freeflow.helpers.DefaultSectionAdapter.java
com.comcast.freeflow.layouts.FreeFlowLayoutBase.java
com.comcast.freeflow.layouts.FreeFlowLayout.java
com.comcast.freeflow.layouts.HGridLayout.java
com.comcast.freeflow.layouts.HLayout.java
com.comcast.freeflow.layouts.VGridLayoutTest.java
com.comcast.freeflow.layouts.VGridLayout.java
com.comcast.freeflow.layouts.VLayout.java
com.comcast.freeflow.teststub.MainActivity.java
com.comcast.freeflow.utils.MathUtils.java
com.comcast.freeflow.utils.ViewUtils.java