Fix ViewShot dropping frames and stickers on Android by grouping all layers into a single composited parent View
This commit is contained in:
@@ -19,6 +19,7 @@ export default function FrameOverlay({ frameAsset }: FrameOverlayProps) {
|
|||||||
source={frameAsset}
|
source={frameAsset}
|
||||||
style={styles.frameImage}
|
style={styles.frameImage}
|
||||||
resizeMode="cover"
|
resizeMode="cover"
|
||||||
|
fadeDuration={0}
|
||||||
/>
|
/>
|
||||||
</View>
|
</View>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -445,31 +445,33 @@ export default function PreviewScreen({
|
|||||||
style={styles.viewShotContainer}
|
style={styles.viewShotContainer}
|
||||||
collapsable={false}
|
collapsable={false}
|
||||||
>
|
>
|
||||||
{renderCollageView()}
|
<View style={StyleSheet.absoluteFill} collapsable={false}>
|
||||||
|
{renderCollageView()}
|
||||||
|
|
||||||
{/* Frame Overlay */}
|
{/* Frame Overlay */}
|
||||||
{activeFrame && <FrameOverlay frameAsset={activeFrame.asset} />}
|
{activeFrame && <FrameOverlay frameAsset={activeFrame.asset} />}
|
||||||
|
|
||||||
{/* Date/Time Overlay */}
|
{/* Date/Time Overlay */}
|
||||||
{dateOverlay !== 'off' && (
|
{dateOverlay !== 'off' && (
|
||||||
<View style={[styles.dateOverlay, getDatePositionStyle()]} pointerEvents="none">
|
<View style={[styles.dateOverlay, getDatePositionStyle()]} pointerEvents="none">
|
||||||
<Text style={styles.dateOverlayText}>
|
<Text style={styles.dateOverlayText}>
|
||||||
{formatDate(dateOverlay)}
|
{formatDate(dateOverlay)}
|
||||||
</Text>
|
</Text>
|
||||||
</View>
|
</View>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{/* Stickers */}
|
{/* Stickers */}
|
||||||
{stickers.map((sticker) => (
|
{stickers.map((sticker) => (
|
||||||
<DraggableSticker
|
<DraggableSticker
|
||||||
key={sticker.id}
|
key={sticker.id}
|
||||||
sticker={sticker}
|
sticker={sticker}
|
||||||
isSelected={selectedStickerId === sticker.id}
|
isSelected={selectedStickerId === sticker.id}
|
||||||
onSelect={handleStickerSelect}
|
onSelect={handleStickerSelect}
|
||||||
onDelete={handleStickerDelete}
|
onDelete={handleStickerDelete}
|
||||||
onUpdate={handleStickerUpdate}
|
onUpdate={handleStickerUpdate}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
</View>
|
||||||
</ViewShot>
|
</ViewShot>
|
||||||
|
|
||||||
{/* Sticker Tray (outside ViewShot — not captured) */}
|
{/* Sticker Tray (outside ViewShot — not captured) */}
|
||||||
|
|||||||
Reference in New Issue
Block a user