Fix RTL issue of ImageFloatingTextView am: dd8611fc5a
am: 4d590a91c2
Change-Id: I6a563e996bc93dd8f3a53b48c185319fdd1886de
This commit is contained in:
@@ -40,6 +40,9 @@ public class ImageFloatingTextView extends TextView {
|
||||
/** Number of lines from the top to indent */
|
||||
private int mIndentLines;
|
||||
|
||||
/** Resolved layout direction */
|
||||
private int mResolvedDirection = LAYOUT_DIRECTION_UNDEFINED;
|
||||
|
||||
public ImageFloatingTextView(Context context) {
|
||||
this(context, null);
|
||||
}
|
||||
@@ -82,7 +85,7 @@ public class ImageFloatingTextView extends TextView {
|
||||
margins[i] = endMargin;
|
||||
}
|
||||
}
|
||||
if (getLayoutDirection() == LAYOUT_DIRECTION_RTL) {
|
||||
if (mResolvedDirection == LAYOUT_DIRECTION_RTL) {
|
||||
builder.setIndents(margins, null);
|
||||
} else {
|
||||
builder.setIndents(null, margins);
|
||||
@@ -91,6 +94,19 @@ public class ImageFloatingTextView extends TextView {
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRtlPropertiesChanged(int layoutDirection) {
|
||||
super.onRtlPropertiesChanged(layoutDirection);
|
||||
|
||||
if (layoutDirection != mResolvedDirection && isLayoutDirectionResolved()) {
|
||||
mResolvedDirection = layoutDirection;
|
||||
if (mIndentLines > 0) {
|
||||
// Invalidate layout.
|
||||
setHint(getHint());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@RemotableViewMethod
|
||||
public void setHasImage(boolean hasImage) {
|
||||
setNumIndentLines(hasImage ? 2 : 0);
|
||||
|
||||
Reference in New Issue
Block a user