Android Open Source - FreeFlow Free Flow Layout

From Project

Back to project page FreeFlow.


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
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.

import java.util.Map;


 * 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