--- name: "add-android-foldable-tablet" description: "Optimize Android layout for foldables (Pixel Fold, Galaxy Fold) and tablets using window size classes. Use when the user says 'foldable android', 'tablet layout android', 'large screen android'." --- # Optimize for Foldables + Tablets Pixel Fold and Galaxy Fold series have inner + outer screens. Tablets have larger UIs. Play features foldable-optimized apps. ## Window size classes Android groups screens into: - **Compact** — phones (<600dp wide) - **Medium** — small tablets, large phones folded (600-840dp) - **Expanded** — tablets, foldables unfolded (>840dp) ## In RN/Expo ```tsx import { useWindowDimensions } from 'react-native'; const { width } = useWindowDimensions(); const sizeClass = width < 600 ? 'compact' : width < 840 ? 'medium' : 'expanded'; ``` ## Layout adaptations ### Compact (phone) - Bottom navigation (3-5 items) - Single column ### Medium (tablet portrait) - Navigation rail (side) - Single column OR 2-pane (list + detail) ### Expanded (tablet landscape, foldable open) - Navigation drawer (permanent) - Multi-pane (list-detail-detail) ```tsx {sizeClass === 'expanded' ? : } ``` ## Foldable hinge handling ```bash pnpm add react-native-window-size-class # community lib ``` Or detect foldable state via Posture API (Android 11+): ```tsx // Native code required — drop down via expo-modules-core // Or use react-native-folding-feature ``` ## Layout for Pixel Fold specifically - Outer screen: 5.8" 1080×2092 - Inner screen: 7.6" 2208×1840 - Aspect changes drastically when unfolding - Save user input across hinge state changes (don't dump form state) ## Test - Pixel Tablet emulator - Pixel Fold emulator (Android Studio bundles) - Test ALL screens: rotate + unfold ## Play featuring Apps with foldable optimization get bonus points in Play featuring. Make sure: - No fixed-orientation lock unless game - Layouts adapt smoothly - App restores state across orientation/posture change ## Pair with - `apply-material3` (M3 includes responsive guidelines) - `set-up-emulator` (create Fold + Tablet AVDs)