private boolean isLayoutRtl() { return ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL; }
private boolean isLayoutRtl() { return ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL; }
private boolean calculateIsRtl(CharSequence text) { final boolean defaultIsRtl = ViewCompat.getLayoutDirection(mView) == ViewCompat.LAYOUT_DIRECTION_RTL; return (defaultIsRtl ? TextDirectionHeuristicsCompat.FIRSTSTRONG_RTL : TextDirectionHeuristicsCompat.FIRSTSTRONG_LTR).isRtl(text, 0, text.length()); }
final int getAbsoluteMovementFlags(RecyclerView recyclerView, ViewHolder viewHolder) { final int flags = getMovementFlags(recyclerView, viewHolder); return convertToAbsoluteDirection(flags, ViewCompat.getLayoutDirection(recyclerView)); }
final boolean isRtl = ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL;
bottom = top + lp.height; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.LEFT) == Gravity.LEFT) { left = anchorView.getLeft() - lp.width / 2; right = left + lp.width; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.RIGHT) == Gravity.RIGHT) { left = anchorView.getRight() - lp.width / 2; right = left + lp.width;
@Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { final int count = getChildCount(); final int width = right - left; final int height = bottom - top; //只支持top、bottom的padding final int padding_top = getPaddingTop(); final int padding_bottom = getPaddingBottom(); int used = 0; for (int i = 0; i < count; i++) { final View child = getChildAt(i); if (child.getVisibility() == GONE) { continue; } if (ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL) { child.layout(width - used - child.getMeasuredWidth(), padding_top, width - used, height - padding_bottom); } else { child.layout(used, padding_top, child.getMeasuredWidth() + used, height - padding_bottom); } used += child.getMeasuredWidth(); } }
bottom = top + lp.height; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.LEFT) == Gravity.LEFT) { left = anchorView.getLeft() - lp.width / 2; right = left + lp.width; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.RIGHT) == Gravity.RIGHT) { left = anchorView.getRight() - lp.width / 2; right = left + lp.width;
bottom = top + lp.height; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.LEFT) == Gravity.LEFT) { left = anchorView.getLeft() - lp.width / 2; right = left + lp.width; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.RIGHT) == Gravity.RIGHT) { left = anchorView.getRight() - lp.width / 2; right = left + lp.width;
bottom = top + lp.height; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.LEFT) == Gravity.LEFT) { left = anchorView.getLeft() - lp.width / 2; right = left + lp.width; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.RIGHT) == Gravity.RIGHT) { left = anchorView.getRight() - lp.width / 2; right = left + lp.width;
bottom = top + lp.height; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.LEFT) == Gravity.LEFT) { left = anchorView.getLeft() - lp.width / 2; right = left + lp.width; if ((GravityCompat.getAbsoluteGravity(lp.anchorGravity, ViewCompat.getLayoutDirection(child)) & Gravity.RIGHT) == Gravity.RIGHT) { left = anchorView.getRight() - lp.width / 2; right = left + lp.width;
@Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { final int count = getChildCount(); final int width = right - left; final int height = bottom - top; //只支持top、bottom的padding final int padding_top = getPaddingTop(); final int padding_bottom = getPaddingBottom(); int used = 0; if (mItemTotalWidth > 0 && mItemTotalWidth < width) { used = (width - mItemTotalWidth) / 2; } for (int i = 0; i < count; i++) { final View child = getChildAt(i); if (child.getVisibility() == GONE) { continue; } if (ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL) { child.layout(width - used - child.getMeasuredWidth(), padding_top, width - used, height - padding_bottom); } else { child.layout(used, padding_top, child.getMeasuredWidth() + used, height - padding_bottom); } used += child.getMeasuredWidth(); } }
private int layoutFlowingViews(int width) { int gravity = GravityCompat.getAbsoluteGravity(this.gravity, ViewCompat.getLayoutDirection(this)); if ((gravity & Gravity.RIGHT) == Gravity.RIGHT) { return layoutFlowingViewsRight(width); } else { return layoutFlowingViewsLeft(width); } }
final int absoluteMovementFlags = mCallback.convertToAbsoluteDirection( originalMovementFlags, ViewCompat.getLayoutDirection(mRecyclerView)); final int flags = (absoluteMovementFlags & ACTION_MODE_SWIPE_MASK) >> (ACTION_STATE_SWIPE * DIRECTION_FLAG_COUNT); ViewCompat.getLayoutDirection(mRecyclerView)); ViewCompat.getLayoutDirection(mRecyclerView));
if (ViewCompat.getLayoutDirection(mRootView) == ViewCompat.LAYOUT_DIRECTION_LTR) { mDrawerLayout.setDrawerShadow(mDrawerGravity == GravityCompat.START ? R.drawable.material_drawer_shadow_right : R.drawable.material_drawer_shadow_left, mDrawerGravity); } else {
final ImageButton leftButton; final ImageButton rightButton; if (ViewCompat.getLayoutDirection(this) == ViewCompat.LAYOUT_DIRECTION_RTL) { leftButton = nextButton; rightButton = prevButton;
public static boolean isRTL(View view) { return ViewCompat.getLayoutDirection(view) == ViewCompat.LAYOUT_DIRECTION_RTL; }
@Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { if (parent.getChildLayoutPosition(view) != 0) { if (ViewCompat.getLayoutDirection(parent) == ViewCompat.LAYOUT_DIRECTION_RTL) outRect.right += spacing; else outRect.left += spacing; } }
boolean isDrawerView2(View child) { final int gravity = ((LayoutParams) child.getLayoutParams()).gravity; final int absGravity = GravityCompat.getAbsoluteGravity(gravity, ViewCompat.getLayoutDirection(child)); return (absGravity & (Gravity.LEFT | Gravity.RIGHT)) != 0; }
protected void setSlideAnimation(boolean fromRight) { if (ViewCompat.getLayoutDirection(getWindow().getDecorView()) == ViewCompat.LAYOUT_DIRECTION_RTL) fromRight = !fromRight; if (fromRight) overridePendingTransition(R.anim.slide_rtl_enter, R.anim.slide_rtl_exit); else overridePendingTransition(R.anim.slide_enter, R.anim.slide_exit); }