当前位置: 首页>>代码示例>>Java>>正文


Java GravityCompat.apply方法代码示例

本文整理汇总了Java中android.support.v4.view.GravityCompat.apply方法的典型用法代码示例。如果您正苦于以下问题:Java GravityCompat.apply方法的具体用法?Java GravityCompat.apply怎么用?Java GravityCompat.apply使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在android.support.v4.view.GravityCompat的用法示例。


在下文中一共展示了GravityCompat.apply方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: layoutChild

import android.support.v4.view.GravityCompat; //导入方法依赖的package包/类
@Override
protected void layoutChild(final CoordinatorLayout parent, final View child, final int layoutDirection) {
    final List<View> dependencies = parent.getDependencies(child);
    final View header = findFirstDependency(dependencies);

    if (header != null) {
        final CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) child.getLayoutParams();
        final Rect available = mTempRect1;
        available.set(parent.getPaddingLeft() + lp.leftMargin, header.getBottom() + lp.topMargin,
                parent.getWidth() - parent.getPaddingRight() - lp.rightMargin,
                parent.getHeight() + header.getBottom() - parent.getPaddingBottom() - lp.bottomMargin);

        final Rect out = mTempRect2;
        GravityCompat.apply(resolveGravity(lp.gravity), child.getMeasuredWidth(), child.getMeasuredHeight(), available, out, layoutDirection);

        final int overlap = getOverlapPixelsForOffset(header);

        child.layout(out.left, out.top - overlap, out.right, out.bottom - overlap);
        mVerticalLayoutGap = out.top - header.getBottom();
    } else {
        // If we don't have a dependency, let super handle it
        super.layoutChild(parent, child, layoutDirection);
        mVerticalLayoutGap = 0;
    }
}
 
开发者ID:zuoni1018,项目名称:CoordinatorLayoutExample-master,代码行数:26,代码来源:HeaderScrollingViewBehavior.java

示例2: layoutChild

import android.support.v4.view.GravityCompat; //导入方法依赖的package包/类
protected void layoutChild(CoordinatorLayout parent, View child, int layoutDirection) {
    View header = findFirstDependency(parent.getDependencies(child));
    if (header != null) {
        LayoutParams lp = (LayoutParams) child.getLayoutParams();
        Rect available = this.mTempRect1;
        available.set(parent.getPaddingLeft() + lp.leftMargin, header.getBottom() + lp.topMargin, (parent.getWidth() - parent.getPaddingRight()) - lp.rightMargin, ((parent.getHeight() + header.getBottom()) - parent.getPaddingBottom()) - lp.bottomMargin);
        Rect out = this.mTempRect2;
        GravityCompat.apply(resolveGravity(lp.gravity), child.getMeasuredWidth(), child.getMeasuredHeight(), available, out, layoutDirection);
        int overlap = getOverlapPixelsForOffset(header);
        child.layout(out.left, out.top - overlap, out.right, out.bottom - overlap);
        this.mVerticalLayoutGap = out.top - header.getBottom();
        return;
    }
    super.layoutChild(parent, child, layoutDirection);
    this.mVerticalLayoutGap = 0;
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:17,代码来源:HeaderScrollingViewBehavior.java

示例3: layoutChild

import android.support.v4.view.GravityCompat; //导入方法依赖的package包/类
@Override
protected void layoutChild(final CoordinatorLayout parent, final View child,
                           final int layoutDirection) {
    final List<View> dependencies = parent.getDependencies(child);
    final View header = findFirstDependency(dependencies);

    if (header != null) {
        final CoordinatorLayout.LayoutParams lp =
                (CoordinatorLayout.LayoutParams) child.getLayoutParams();
        final Rect available = mTempRect1;
        available.set(parent.getPaddingLeft() + lp.leftMargin,
                header.getBottom() + lp.topMargin,
                parent.getWidth() - parent.getPaddingRight() - lp.rightMargin,
                parent.getHeight() + header.getBottom()
                        - parent.getPaddingBottom() - lp.bottomMargin);

        /*final WindowInsetsCompat parentInsets = parent.getLastWindowInsets();
        if (parentInsets != null && ViewCompat.getFitsSystemWindows(parent)
                && !ViewCompat.getFitsSystemWindows(child)) {
            // If we're set to handle insets but this child isn't, then it has been measured as
            // if there are no insets. We need to lay it out to match horizontally.
            // Top and bottom and already handled in the logic above
            available.left += parentInsets.getSystemWindowInsetLeft();
            available.right -= parentInsets.getSystemWindowInsetRight();
        }*/

        final Rect out = mTempRect2;
        GravityCompat.apply(resolveGravity(lp.gravity), child.getMeasuredWidth(),
                child.getMeasuredHeight(), available, out, layoutDirection);

        final int overlap = getOverlapPixelsForOffset(header);

        child.layout(out.left, out.top - overlap, out.right, out.bottom - overlap);
        mVerticalLayoutGap = out.top - header.getBottom();
    } else {
        // If we don't have a dependency, let super handle it
        super.layoutChild(parent, child, layoutDirection);
        mVerticalLayoutGap = 0;
    }
}
 
开发者ID:huyongli,项目名称:UCMainViewForBehavior,代码行数:41,代码来源:HeaderScrollingViewBehavior.java

示例4: layoutChild

import android.support.v4.view.GravityCompat; //导入方法依赖的package包/类
@Override
  protected void layoutChild(final CoordinatorLayout parent, final View child,
          final int layoutDirection) {
  final List<View> dependencies = parent.getDependencies(child);
  final View header = findFirstDependency(dependencies);

  if (header != null) {
    final CoordinatorLayout.LayoutParams lp =
        (CoordinatorLayout.LayoutParams) child.getLayoutParams();
    final Rect available = mTempRect1;
          available.set(parent.getPaddingLeft() + lp.leftMargin,
        header.getBottom() + lp.topMargin,
        parent.getWidth() - parent.getPaddingRight() - lp.rightMargin,
                  parent.getHeight() + header.getBottom()
                          - parent.getPaddingBottom() - lp.bottomMargin);

    final WindowInsetsCompat parentInsets = parent.getLastWindowInsets();
          if (parentInsets != null && ViewCompat.getFitsSystemWindows(parent)
        && !ViewCompat.getFitsSystemWindows(child)) {
      // If we're set to handle insets but this child isn't, then it has been measured as
      // if there are no insets. We need to lay it out to match horizontally.
      // Top and bottom and already handled in the logic above
      available.left += parentInsets.getSystemWindowInsetLeft();
      available.right -= parentInsets.getSystemWindowInsetRight();
    }

    final Rect out = mTempRect2;
          GravityCompat.apply(resolveGravity(lp.gravity), child.getMeasuredWidth(),
                  child.getMeasuredHeight(), available, out, layoutDirection);

    final int overlap = getOverlapPixelsForOffset(header);

    child.layout(out.left, out.top - overlap, out.right, out.bottom - overlap);
    mVerticalLayoutGap = out.top - header.getBottom();
  } else {
    // If we don't have a dependency, let super handle it
    super.layoutChild(parent, child, layoutDirection);
    mVerticalLayoutGap = 0;
  }
}
 
开发者ID:commonsguy,项目名称:cwac-crossport,代码行数:41,代码来源:HeaderScrollingViewBehavior.java

示例5: layoutChild

import android.support.v4.view.GravityCompat; //导入方法依赖的package包/类
/**
   * Lay out a child view with no special handling. This will position the child as
   * if it were within a FrameLayout or similar simple frame.
 *
 * @param child child view to lay out
 * @param layoutDirection ViewCompat constant for the desired layout direction
 */
private void layoutChild(View child, int layoutDirection) {
  final LayoutParams lp = (LayoutParams) child.getLayoutParams();
  final Rect parent = acquireTempRect();
      parent.set(getPaddingLeft() + lp.leftMargin,
      getPaddingTop() + lp.topMargin,
      getWidth() - getPaddingRight() - lp.rightMargin,
      getHeight() - getPaddingBottom() - lp.bottomMargin);

      if (mLastInsets != null && ViewCompat.getFitsSystemWindows(this)
      && !ViewCompat.getFitsSystemWindows(child)) {
    // If we're set to handle insets but this child isn't, then it has been measured as
    // if there are no insets. We need to lay it out to match.
    parent.left += mLastInsets.getSystemWindowInsetLeft();
    parent.top += mLastInsets.getSystemWindowInsetTop();
    parent.right -= mLastInsets.getSystemWindowInsetRight();
    parent.bottom -= mLastInsets.getSystemWindowInsetBottom();
  }

  final Rect out = acquireTempRect();
      GravityCompat.apply(resolveGravity(lp.gravity), child.getMeasuredWidth(),
              child.getMeasuredHeight(), parent, out, layoutDirection);
  child.layout(out.left, out.top, out.right, out.bottom);

  releaseTempRect(parent);
  releaseTempRect(out);
}
 
开发者ID:commonsguy,项目名称:cwac-crossport,代码行数:34,代码来源:CoordinatorLayout.java

示例6: layoutChild

import android.support.v4.view.GravityCompat; //导入方法依赖的package包/类
private void layoutChild(View child, int layoutDirection) {
    LayoutParams lp = (LayoutParams) child.getLayoutParams();
    Rect parent = this.mTempRect1;
    parent.set(getPaddingLeft() + lp.leftMargin, getPaddingTop() + lp.topMargin, (getWidth() - getPaddingRight()) - lp.rightMargin, (getHeight() - getPaddingBottom()) - lp.bottomMargin);
    if (!(this.mLastInsets == null || !ViewCompat.getFitsSystemWindows(this) || ViewCompat.getFitsSystemWindows(child))) {
        parent.left += this.mLastInsets.getSystemWindowInsetLeft();
        parent.top += this.mLastInsets.getSystemWindowInsetTop();
        parent.right -= this.mLastInsets.getSystemWindowInsetRight();
        parent.bottom -= this.mLastInsets.getSystemWindowInsetBottom();
    }
    Rect out = this.mTempRect2;
    GravityCompat.apply(resolveGravity(lp.gravity), child.getMeasuredWidth(), child.getMeasuredHeight(), parent, out, layoutDirection);
    child.layout(out.left, out.top, out.right, out.bottom);
}
 
开发者ID:JackChan1999,项目名称:boohee_v5.6,代码行数:15,代码来源:CoordinatorLayout.java

示例7: gravityCompatApply

import android.support.v4.view.GravityCompat; //导入方法依赖的package包/类
void gravityCompatApply(int gravity, int bitmapWidth, int bitmapHeight, Rect bounds, Rect outRect) {
    GravityCompat.apply(gravity, bitmapWidth, bitmapHeight, bounds, outRect, 0);
}
 
开发者ID:JackChan1999,项目名称:letv,代码行数:4,代码来源:RoundedBitmapDrawableFactory.java

示例8: layoutChild

import android.support.v4.view.GravityCompat; //导入方法依赖的package包/类
@Override
protected void layoutChild(final CoordinatorLayout parent, final View child,
                           final int layoutDirection) {
    final List<View> dependencies = parent.getDependencies(child);
    final View header = findFirstDependency(dependencies);

    if (header != null) {
        final CoordinatorLayout.LayoutParams lp =
                (CoordinatorLayout.LayoutParams) child.getLayoutParams();
        final Rect available = mTempRect1;
        available.set(parent.getPaddingLeft() + lp.leftMargin,
                header.getBottom() + lp.topMargin,
                parent.getWidth() - parent.getPaddingRight() - lp.rightMargin,
                parent.getHeight() + header.getBottom()
                        - parent.getPaddingBottom() - lp.bottomMargin);

        //修改代码,通过反射执行getLastWindowInsets()方法
        try {
            Method method = parent.getClass().getDeclaredMethod("getLastWindowInsets", (Class<?>[]) new Object[]{});
            method.setAccessible(true);
            final WindowInsetsCompat parentInsets = (WindowInsetsCompat) method.invoke(parent);
            if (parentInsets != null && ViewCompat.getFitsSystemWindows(parent)
                    && !ViewCompat.getFitsSystemWindows(child)) {
                // If we're set to handle insets but this child isn't, then it has been measured as
                // if there are no insets. We need to lay it out to match horizontally.
                // Top and bottom and already handled in the logic above
                available.left += parentInsets.getSystemWindowInsetLeft();
                available.right -= parentInsets.getSystemWindowInsetRight();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        final Rect out = mTempRect2;
        GravityCompat.apply(resolveGravity(lp.gravity), child.getMeasuredWidth(),
                child.getMeasuredHeight(), available, out, layoutDirection);

        final int overlap = getOverlapPixelsForOffset(header);

        child.layout(out.left, out.top - overlap, out.right, out.bottom - overlap);
        mVerticalLayoutGap = out.top - header.getBottom();
    } else {
        // If we don't have a dependency, let super handle it
        super.layoutChild(parent, child, layoutDirection);
        mVerticalLayoutGap = 0;
    }
}
 
开发者ID:Othershe,项目名称:BehaviorDemo,代码行数:48,代码来源:HeaderScrollingViewBehavior.java


注:本文中的android.support.v4.view.GravityCompat.apply方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。