本文整理汇总了Java中android.view.View.addOnLayoutChangeListener方法的典型用法代码示例。如果您正苦于以下问题:Java View.addOnLayoutChangeListener方法的具体用法?Java View.addOnLayoutChangeListener怎么用?Java View.addOnLayoutChangeListener使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类android.view.View
的用法示例。
在下文中一共展示了View.addOnLayoutChangeListener方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: onLayout
import android.view.View; //导入方法依赖的package包/类
static Disposable onLayout(ViewsDidLayoutListener listener, View... views) {
final Set<View> unmeasured = new HashSet<>();
for (View view : views) {
if (!isViewMeasured(view)) {
unmeasured.add(view);
}
}
final MyLayoutListener layoutListener = new MyLayoutListener(listener, unmeasured);
for (View target : unmeasured) {
target.addOnLayoutChangeListener(layoutListener);
}
if (unmeasured.isEmpty()) {
listener.onLayout();
}
return layoutListener;
}
示例2: leftToRight
import android.view.View; //导入方法依赖的package包/类
/**
* Анимация плавного перемещения view слева направо
*
* @param context контекст
* @param view перемещаемое view
* @param duration длительность анимации в миллисекундах
*/
public static void leftToRight(final Context context, final View view, final long duration) {
view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v,
int left,
int top,
int right,
int bottom,
int oldLeft,
int oldTop,
int oldRight,
int oldBottom) {
v.removeOnLayoutChangeListener(this);
Animation anim = android.view.animation.AnimationUtils.loadAnimation(context,
R.anim.slide_in_left);
anim.setDuration(duration);
v.startAnimation(anim);
}
});
}
示例3: addViewWithSubviewClippingEnabled
import android.view.View; //导入方法依赖的package包/类
void addViewWithSubviewClippingEnabled(View child, int index, LayoutParams params) {
Assertions.assertCondition(mRemoveClippedSubviews);
Assertions.assertNotNull(mClippingRect);
Assertions.assertNotNull(mAllChildren);
addInArray(child, index);
// we add view as "clipped" and then run {@link #updateSubviewClipStatus} to conditionally
// attach it
int clippedSoFar = 0;
for (int i = 0; i < index; i++) {
if (mAllChildren[i].getParent() == null) {
clippedSoFar++;
}
}
updateSubviewClipStatus(mClippingRect, index, clippedSoFar);
child.addOnLayoutChangeListener(mChildrenLayoutChangeListener);
}
示例4: setPopView
import android.view.View; //导入方法依赖的package包/类
/**
* 设置要Pop的view
*
* @param popView
* @return
*/
public FPoper setPopView(View popView)
{
final View old = mPopView;
if (old != popView)
{
if (old != null)
{
old.removeOnLayoutChangeListener(mOnLayoutChangeListenerPopView);
}
mPopView = popView;
if (popView != null)
{
popView.removeOnLayoutChangeListener(mOnLayoutChangeListenerPopView);
popView.addOnLayoutChangeListener(mOnLayoutChangeListenerPopView);
}
}
return this;
}
示例5: scrollToPosition
import android.view.View; //导入方法依赖的package包/类
public void scrollToPosition(final int position, final ScrollOptions options) {
if (options.viewPosition != null) {
final LinearLayoutManager layoutManager = (LinearLayoutManager) getLayoutManager();
final ReactListAdapter adapter = (ReactListAdapter) getAdapter();
final View view = adapter.getViewByItemIndex(position);
if (view != null) {
final int viewHeight = view.getHeight();
// In order to calculate the correct offset, we need the height of the target view.
// If the height of the view is not available it means RN has not calculated it yet.
// So let's listen to the layout change and we will retry scrolling.
if (viewHeight == 0) {
view.addOnLayoutChangeListener(new OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
view.removeOnLayoutChangeListener(this);
scrollToPosition(position, options);
}
});
return;
}
final int boxStart = layoutManager.getPaddingTop();
final int boxEnd = layoutManager.getHeight() - layoutManager.getPaddingBottom();
final int boxHeight = boxEnd - boxStart;
float viewOffset = options.viewOffset != null ? PixelUtil.toPixelFromDIP(options.viewOffset) : 0;
int offset = (int) ((boxHeight - viewHeight) * options.viewPosition + viewOffset);
layoutManager.scrollToPositionWithOffset(position, offset);
return;
}
}
super.scrollToPosition(position);
}
示例6: onCreateView
import android.view.View; //导入方法依赖的package包/类
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.cloneInContext(new ContextThemeWrapper(getContext(), getTheme()))
.inflate(R.layout.fragment_side, container, false);
final Bundle args = getArguments();
if (args != null) {
rootView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop,
int oldRight, int oldBottom) {
v.removeOnLayoutChangeListener(this);
int cx = args.getInt("cx");
int cy = args.getInt("cy");
// get the hypotheses so the mRadius is from one corner to the other
float radius = (float) Math.hypot(right, bottom);
// Hardware-supported clipPath()
// http://developer.android.com/guide/topics/graphics/hardware-accel.html
if (Build.VERSION.SDK_INT >= 18) {
isAnimRunning = true;
Animator reveal = createCheckoutRevealAnimator((ClipRevealFrame) v, cx, cy, 28f, radius);
reveal.start();
} else {
removeOldSideFragment();
}
}
});
}
ButterKnife.bind(this, rootView);
return rootView;
}
示例7: onFinishInflate
import android.view.View; //导入方法依赖的package包/类
@Override
protected void onFinishInflate() {
super.onFinishInflate();
View view = getView();
view.addOnLayoutChangeListener(this);
}
开发者ID:rkshuai,项目名称:chromium-for-android-56-debug-video,代码行数:8,代码来源:OverlayPanelTextViewInflater.java
示例8: circularReveal
import android.view.View; //导入方法依赖的package包/类
/**
* Анимация "кругового" появления view
*
* @param context контекст
* @param view появляемая view
* @param revealSettings настройки анимации
* @param startColor начальный цвет фона view
* @param endColor конечный цвет фона view
*/
public static void circularReveal(final Context context,
final View view,
final RevealAnimationSetting revealSettings,
final int startColor,
final int endColor) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
view.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public void onLayoutChange(View v,
int left,
int top,
int right,
int bottom,
int oldLeft,
int oldTop,
int oldRight,
int oldBottom) {
v.removeOnLayoutChangeListener(this);
int cx = revealSettings.getCenterX();
int cy = revealSettings.getCenterY();
int width = revealSettings.getWidth();
int height = revealSettings.getHeight();
int duration = context.getResources()
.getInteger(android.R.integer.config_mediumAnimTime);
//Simply use the diagonal of the view
float finalRadius = (float) Math.sqrt(width * width + height * height);
Animator anim =
ViewAnimationUtils.createCircularReveal(v, cx, cy, 0, finalRadius)
.setDuration(duration);
anim.setInterpolator(new FastOutSlowInInterpolator());
anim.start();
recolorBackground(view, startColor, endColor, duration);
}
});
}
}
示例9: setRemoveClippedSubviews
import android.view.View; //导入方法依赖的package包/类
@Override
public void setRemoveClippedSubviews(boolean removeClippedSubviews) {
if (removeClippedSubviews == mRemoveClippedSubviews) {
return;
}
mRemoveClippedSubviews = removeClippedSubviews;
if (removeClippedSubviews) {
mClippingRect = new Rect();
ReactClippingViewGroupHelper.calculateClippingRect(this, mClippingRect);
mAllChildrenCount = getChildCount();
int initialSize = Math.max(12, mAllChildrenCount);
mAllChildren = new View[initialSize];
mChildrenLayoutChangeListener = new ChildrenLayoutChangeListener(this);
for (int i = 0; i < mAllChildrenCount; i++) {
View child = getChildAt(i);
mAllChildren[i] = child;
child.addOnLayoutChangeListener(mChildrenLayoutChangeListener);
}
updateClippingRect();
} else {
// Add all clipped views back, deallocate additional arrays, remove layoutChangeListener
Assertions.assertNotNull(mClippingRect);
Assertions.assertNotNull(mAllChildren);
Assertions.assertNotNull(mChildrenLayoutChangeListener);
for (int i = 0; i < mAllChildrenCount; i++) {
mAllChildren[i].removeOnLayoutChangeListener(mChildrenLayoutChangeListener);
}
getDrawingRect(mClippingRect);
updateClippingToRect(mClippingRect);
mAllChildren = null;
mClippingRect = null;
mAllChildrenCount = 0;
mChildrenLayoutChangeListener = null;
}
}
示例10: onViewAdded
import android.view.View; //导入方法依赖的package包/类
@Override
public void onViewAdded(View child) {
super.onViewAdded(child);
child.addOnLayoutChangeListener(mChildLayoutChangeListener);
}
示例11: intPreScroll
import android.view.View; //导入方法依赖的package包/类
public static void intPreScroll(final SmoothAppBarLayout smoothAppBarLayout, final View target, final int offset) {
target.addOnLayoutChangeListener(new OnPreScrollListener(smoothAppBarLayout, target, offset));
}
示例12: setListener
import android.view.View; //导入方法依赖的package包/类
/**
*
* @param bottomChangeView 一个在软件盘弹出是bottom会发生改变的View,如:被软件键盘向上顶的View,布局的根View。如果没有监听到,说明该View的bottom值没有随软键盘的弹出而改变
* @param onKeyboardListener
*/
public static void setListener(View bottomChangeView, OnKeyboardListener onKeyboardListener) {
bottomChangeView.addOnLayoutChangeListener(new KeyboardListener(bottomChangeView, onKeyboardListener));
}