private void postInvalidateOnAnimation() { ViewCompat.postInvalidateOnAnimation(mRecyclerView); }
private boolean isLayoutRtl() { return ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL; }
/** * helper method to reset the drawer content */ private void resetDrawerContent(Context ctx) { if (mDrawer != null) { mDrawer.resetDrawerContent(); } mAccountSwitcherArrow.clearAnimation(); ViewCompat.animate(mAccountSwitcherArrow).rotation(0).start(); //mAccountSwitcherArrow.setImageDrawable(new IconicsDrawable(ctx, MaterialDrawerFont.Icon.mdf_arrow_drop_down).sizeRes(R.dimen.material_drawer_account_header_dropdown).paddingRes(R.dimen.material_drawer_account_header_dropdown_padding).color(ColorHolder.color(mTextColor, ctx, R.attr.material_drawer_header_selection_text, R.color.material_drawer_header_selection_text))); }
@Override public void onAnimationEnd(View view) { ViewPropertyAnimatorCompat animator = ViewCompat.animate(view); animator.setListener(null); resetDraggingItemViewEffects(view, initialTranslationZ); // invalidate explicitly to refresh other decorations if (view.getParent() instanceof RecyclerView) { ViewCompat.postInvalidateOnAnimation((RecyclerView) view.getParent()); } }
@Override public void onDraw(Canvas c, RecyclerView recyclerView, View view, float dX, float dY, int actionState, boolean isCurrentlyActive) { if (isCurrentlyActive) { Object originalElevation = view.getTag(R.id.item_touch_helper_previous_elevation); if (originalElevation == null) { originalElevation = view instanceof ShadowView ? ((ShadowView) view).getElevation() : ViewCompat.getElevation(view); float newElevation = 1f + findMaxElevation(recyclerView, view); if (view instanceof ShadowView) { ((ShadowView) view).setElevation(newElevation); } else { ViewCompat.setElevation(view, newElevation); } view.setTag(R.id.item_touch_helper_previous_elevation, originalElevation); } } super.onDraw(c, recyclerView, view, dX, dY, actionState, isCurrentlyActive); }
/** * binds the data of this item onto the viewHolder * * @param viewHolder the viewHolder of this item */ @Override public void bindView(ViewHolder viewHolder, List<Object> payloads) { super.bindView(viewHolder, payloads); //get the context Context ctx = viewHolder.itemView.getContext(); //set the background for the item viewHolder.view.clearAnimation(); ViewCompat.setBackground(viewHolder.view, FastAdapterUIUtils.getSelectableBackground(ctx, Color.RED, true)); //set the text for the name StringHolder.applyTo(name, viewHolder.name); //set the text for the description or hide StringHolder.applyToOrHide(description, viewHolder.description); if (getSubItems() == null || getSubItems().size() == 0) { viewHolder.icon.setVisibility(View.GONE); } else { viewHolder.icon.setVisibility(View.VISIBLE); } if (isExpanded()) { ViewCompat.setRotation(viewHolder.icon, 0); } else { ViewCompat.setRotation(viewHolder.icon, 180); } }
public void tintMessageBackground(@ColorInt int color) { Drawable drawable = Utils.tinting(ContextCompat.getDrawable(getContext(), R.drawable.round), color); ViewCompat.setBackground(mOval, drawable); ViewCompat.setBackground(mMessages, drawable); }
public OpaqueStatusBarRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); TypedArray ta = context.obtainStyledAttributes( attrs, R.styleable.OpaqueStatusBarRelativeLayout, defStyleAttr, 0); mInsetDrawable = ta.getDrawable(R.styleable.OpaqueStatusBarRelativeLayout_colorPrimaryDark); ta.recycle(); setWillNotDraw(false); ViewCompat.setOnApplyWindowInsetsListener(this, (View v, WindowInsetsCompat insets) -> { mTopInset = insets.getSystemWindowInsetTop(); setPadding(0, mTopInset, 0, 0); ViewCompat.postInvalidateOnAnimation(this); return insets.consumeSystemWindowInsets(); }); setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); }
/** * Activate or not the elevation * * @param useElevation boolean */ public void setUseElevation(boolean useElevation) { ViewCompat.setElevation(this, useElevation ? resources.getDimension(R.dimen.bottom_navigation_elevation) : 0); setClipToPadding(false); }
@Override public void onViewAttachedToWindow(@NonNull final View v) { mIsAttached = true; ViewCompat.postOnAnimation(v, new Runnable() { @Override public void run() { if (mIsAttached && mDrawable != null) { v.invalidateDrawable(mDrawable); ViewCompat.postOnAnimation(v, this); } } }); }
R.style.Widget_Drawer_NavigationView); ViewCompat.setBackground( this, a.getDrawable(R.styleable.DrawerNavigationView_android_background)); if (a.hasValue(R.styleable.DrawerNavigationView_elevation)) { ViewCompat.setElevation(this, a.getDimensionPixelSize( R.styleable.DrawerNavigationView_elevation, 0)); ViewCompat.setFitsSystemWindows(this, a.getBoolean(R.styleable.DrawerNavigationView_android_fitsSystemWindows, false));
mDefaultGutterSize = (int) (DEFAULT_GUTTER_SIZE * density); ViewCompat.setAccessibilityDelegate(this, new MyAccessibilityDelegate()); if (ViewCompat.getImportantForAccessibility(this) == ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_AUTO) { ViewCompat.setImportantForAccessibility(this, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); ViewCompat.setOnApplyWindowInsetsListener(this, new androidx.core.view.OnApplyWindowInsetsListener() { private final Rect mTempRect = new Rect();
@Override protected final void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dataBinder = new DataBinder(this); decorator = new Decorator(); tabSwitcher = findViewById(R.id.tab_switcher); tabSwitcher.clearSavedStatesWhenRemovingTabs(false); ViewCompat.setOnApplyWindowInsetsListener(tabSwitcher, createWindowInsetsListener()); tabSwitcher.setDecorator(decorator); tabSwitcher.addListener(this); tabSwitcher.showToolbars(true); for (int i = 0; i < TAB_COUNT; i++) { tabSwitcher.addTab(createTab(i)); } tabSwitcher.showAddTabButton(createAddTabButtonListener()); tabSwitcher.setToolbarNavigationIcon(R.drawable.ic_plus_24dp, createAddTabListener()); TabSwitcher.setupWithMenu(tabSwitcher, createTabSwitcherButtonListener()); inflateMenu(); }
private static View getLaidOutItemView(@Nullable RecyclerView.ViewHolder holder) { if (holder == null) { return null; } final View itemView = holder.itemView; if (!ViewCompat.isLaidOut(itemView)) { return null; } return itemView; }
ViewCompat.setAccessibilityDelegate(this, mTouchHelper); ViewCompat.setImportantForAccessibility(this, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_YES); mLockAccessibilityDelegate = true;
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); ViewCompat.setOnApplyWindowInsetsListener(collapsingToolbarLayout, new OnApplyWindowInsetsListener() { @Override public WindowInsetsCompat onApplyWindowInsets(View v, WindowInsetsCompat insets) { View mChildView = mContentView.getChildAt(0); if (mChildView != null) { ViewCompat.setFitsSystemWindows(mChildView, false); ViewCompat.requestApplyInsets(mChildView);
private void updateShadowLevelNative(float translationZ, float elevation, boolean force) { if (force) { mCurrentSpotShadowDrawable1 = null; mCurrentSpotShadowDrawable1ResId = 0; mCurrentSpotShadowDrawable2 = null; mCurrentSpotShadowDrawable2ResId = 0; mCurrentAmbientShadowDrawable1 = null; mCurrentAmbientShadowDrawable1ResId = 0; mCurrentAmbientShadowDrawable2 = null; mCurrentAmbientShadowDrawable2ResId = 0; updateWillNotDraw(); } final View childView = (getChildCount() > 0) ? getChildAt(0) : null; if (childView != null) { ViewCompat.setTranslationZ(childView, translationZ); ViewCompat.setElevation(childView, elevation); } }
@Override public void bindView(ViewHolder viewHolder, List payloads) { super.bindView(viewHolder, payloads); Context ctx = viewHolder.itemView.getContext(); //set the identifier from the drawerItem here. It can be used to run tests viewHolder.itemView.setId(hashCode()); //define how the divider should look like viewHolder.view.setClickable(false); viewHolder.view.setEnabled(false); viewHolder.view.setMinimumHeight(1); ViewCompat.setImportantForAccessibility(viewHolder.view, ViewCompat.IMPORTANT_FOR_ACCESSIBILITY_NO); //set the color for the divider viewHolder.divider.setBackgroundColor(UIUtils.getThemeColorFromAttrOrRes(ctx, R.attr.material_drawer_divider, R.color.material_drawer_divider)); //call the onPostBindView method to trigger post bind view actions (like the listener to modify the item if required) onPostBindView(this, viewHolder.itemView); }
public DrawerNavigationMenuItemView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); setOrientation(HORIZONTAL); LayoutInflater.from(context).inflate(R.layout.drawer_navigation_menu_item, this, true); mIconSize = context.getResources().getDimensionPixelSize( R.dimen.drawer_navigation_icon_size); mIcon = findViewById(R.id.drawer_menu_item_icon); mButton = findViewById(R.id.drawer_menu_item_button); mTextView = findViewById(R.id.drawer_menu_item_text); mTextView.setDuplicateParentStateEnabled(true); ViewCompat.setAccessibilityDelegate(mTextView, mAccessibilityDelegate); mSubTextView = findViewById(R.id.drawer_menu_item_subtext); mSubTextView.setDuplicateParentStateEnabled(true); ViewCompat.setAccessibilityDelegate(mSubTextView, mAccessibilityDelegate); mButton.setOnClickListener(v -> { if (mOnMenuButtonClickListener != null) { mOnMenuButtonClickListener.onMenuButtonClick(mItemData.getItemId()); } }); }
public void style(TextView badgeTextView, ColorStateList colorStateList) { Context ctx = badgeTextView.getContext(); //set background for badge if (mBadgeBackground == null) { ViewCompat.setBackground(badgeTextView, new BadgeDrawableBuilder(this).build(ctx)); } else { ViewCompat.setBackground(badgeTextView, mBadgeBackground); } //set the badge text color if (mTextColor != null) { ColorHolder.applyToOr(mTextColor, badgeTextView, null); } else if (mTextColorStateList != null) { badgeTextView.setTextColor(mTextColorStateList); } else if (colorStateList != null) { badgeTextView.setTextColor(colorStateList); } //set the padding int paddingLeftRight = mPaddingLeftRight.asPixel(ctx); int paddingTopBottom = mPaddingTopBottom.asPixel(ctx); badgeTextView.setPadding(paddingLeftRight, paddingTopBottom, paddingLeftRight, paddingTopBottom); //set the min width badgeTextView.setMinWidth(mMinWidth.asPixel(ctx)); } }