mirror of
https://github.com/zoriya/react-native-svg.git
synced 2026-06-05 07:59:28 +00:00
[android] Fix text onPress handling, improve caching #941
This commit is contained in:
@@ -48,6 +48,7 @@ class TSpanView extends TextView {
|
||||
private static final String OTF = ".otf";
|
||||
private static final String TTF = ".ttf";
|
||||
|
||||
private Path mCachedPath;
|
||||
@Nullable String mContent;
|
||||
private TextPathView textPath;
|
||||
ArrayList<String> emoji = new ArrayList<>();
|
||||
@@ -63,6 +64,12 @@ class TSpanView extends TextView {
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invalidate() {
|
||||
mCachedPath = null;
|
||||
super.invalidate();
|
||||
}
|
||||
|
||||
@Override
|
||||
void draw(Canvas canvas, Paint paint, float opacity) {
|
||||
if (mContent != null) {
|
||||
@@ -89,21 +96,22 @@ class TSpanView extends TextView {
|
||||
|
||||
@Override
|
||||
Path getPath(Canvas canvas, Paint paint) {
|
||||
if (mPath != null) {
|
||||
return mPath;
|
||||
if (mCachedPath != null) {
|
||||
return mCachedPath;
|
||||
}
|
||||
|
||||
if (mContent == null) {
|
||||
return getGroupPath(canvas, paint);
|
||||
mCachedPath = getGroupPath(canvas, paint);
|
||||
return mCachedPath;
|
||||
}
|
||||
|
||||
setupTextPath();
|
||||
|
||||
pushGlyphContext();
|
||||
Path path = getLinePath(mContent, paint, canvas);
|
||||
mCachedPath = getLinePath(mContent, paint, canvas);
|
||||
popGlyphContext();
|
||||
|
||||
return path;
|
||||
return mCachedPath;
|
||||
}
|
||||
|
||||
double getSubtreeTextChunksTotalAdvance(Paint paint) {
|
||||
|
||||
Reference in New Issue
Block a user