Foldable Device (vikbar enhet) — är en klass av mobila prylar med flexibel skärm som ändrar formfaktor vid vikning och utfällning. Sådana enheter fungerar både som kompakt telefon och som surfplatta — beroende på skärmens position. Enligt Android Developers (2025) växte den globala marknaden för vikbara enheter med 42% under 2024 och anpassning av applikationer till denna formfaktor blir obligatorisk för stora projekt.
Huvudpunkter
Foldable Device — är en mobil enhet med flexibel OLED-skärm som kan vikas utan att skada matrisen. I vikt tillstånd är en sådan enhet kompakt och får plats i fickan, i utfällt tillstånd ger den en skärm i surfplattestorlek. Den första massproducerade vikbara enheten var Royole FlexPai (2018), men kategorin populariserades av Samsung Galaxy Fold (2019) och Huawei Mate X.
Den viktigaste skillnaden mellan vikbara och traditionella enheter är närvaron av ett gångjärn (hinge) och en flexibel skärm. Vid vikning går skärmen inte sönder utan böjs med en radie som bestäms av gångjärnskonstruktionen. Modern teknik (UTG — Ultra Thin Glass, 2020+ och Samsung Infinity Flex) tål upp till 200 000 vikcykler utan synlig skada.
För utvecklare skapar vikbara enheter tre utmaningar: ändring av skärmstorlek vid utfällning, förekomst av ett veck (crease) och arbete i halvöppet tillstånd (tabletop mode), när enheten står på en yta i vinkel.
Bokstil (book-style) — Galaxy Z Fold, Google Pixel Fold, OnePlus Open. Extern skärm (cover screen) för användning i vikt tillstånd, intern flexibel skärm (inner screen) för surfplatteläge. Bildförhållandet för den externa skärmen är cirka 22:9, för den interna — cirka 6:5 eller 4:3.
Flipstil (flip-style) — Galaxy Z Flip, Motorola Razr, Oppo Find N2 Flip. Vertikal vikning, extern skärm för aviseringar (1.5–3.5 tum), intern skärm — standardtelefon (6.7–7 tum). Huvudfunktion — i halvöppet läge (flex mode) kan applikationen dela skärmen i två zoner: kontroll ovan, innehåll nedan.
Dubbelskärm — Microsoft Surface Duo, Lenovo ThinkPhone. Två separata skärmar med ett gångjärn i mitten. Vid utfällning bildar de en gemensam yta, men med ett fysiskt gap mellan skärmarna. API:et tar hänsyn till gångjärnsvinkeln och gör att applikationen kan sträcka sig över båda skärmarna.
Google tillhandahåller Jetpack WindowManager för arbete med vikbara enheter. API:et innehåller tre nyckelkomponenter: WindowLayoutInfo — information om veckets placering (fold), WindowPosture — enhetens fysiska position och FoldingFeature — beskrivning av böjmrådet: orientering, tillstånd och vinkel.
FoldingFeature innehåller typen av vikning (hinge — gångjärn, fold — flexibel skärm), tillstånd (flat — öppen, half-opened — halvöppen, folded — stängd) och böjmrådesvinkeln (från 0 till 180 grader). Vinkeln är tillgänglig på enheter med vinkelsensor (Galaxy Z Fold, Pixel Fold).
val windowInfoRepository =
WindowInfoTracker.getOrCreate(context)
windowInfoRepository.windowLayoutInfo(context)
.collect { layoutInfo ->
layoutInfo.displayFeatures
.filterIsInstance<FoldingFeature>()
.forEach { feature ->
// hantering av vikning
}
}
För att avgöra om en enhet är vikbar, använd PackageManager.hasSystemFeature("android.hardware.sensor.hinge_angle"). På en enhet med gångjärn finns denna sensor — på vanliga telefoner saknas den.
Gränssnittsanpassning — utvecklarens huvuduppgift vid stöd av vikbara enheter. Vid utfällning kan fönstrets bredd fördubblas och gränssnittet måste omstruktureras från enkelspaltig till flerspaltig. Använd Window Size Class för att växla mellan layouter — vid utfällning ändras klassen från Compact till Expanded.
Var särskilt uppmärksam på hantering av konfigurationsändringar. När användaren fäller ut enheten kan Activity återskapas. Om applikationen inte sparar tillståndet förlorar användaren inmatade data eller rullningspositionen. Använd ViewModel för skärmdata och onSaveInstanceState för UI-tillstånd.
För flex mode (tabletop mode) bör designen dela skärmen i två funktionella zoner. Övre — visning av innehåll (video, galleri, lista), nedre — kontroll (knappar, kontroller, tangentbord). Detta mönster används i videospelare: YouTube på Galaxy Z Flip visar video ovan, rekommendationer och knappar nedan.
Testning — en av de svåraste aspekterna av utveckling för vikbara enheter. Android Emulator möjliggör simulering av vikbara enheter via AVD med konfigurationen "Foldable" (intern 7,6-tumsskärm, extern 4,6-tumsskärm). Emulatorn stöder växling mellan vikt och utfällt tillstånd.
För testning i emulatorn används ADB. Kommandot adb shell am broadcast -a android.intent.action.VIEW -e mode expand fäller ut enheten, adb shell am broadcast -a android.intent.action.VIEW -e mode fold viker den. Även böjmrådesvinkeln kan ändras i emulatorfönstret.
Verklig testning på fysiska enheter rekommenderas för att kontrollera övergångskänslan, gångjärnskvaliteten och veckets synlighet. Huvudmodeller för testning: Samsung Galaxy Z Fold 6 (bokstil), Samsung Galaxy Z Flip 6 (flipstil), Google Pixel Fold, Motorola Razr 50.
Placera inte kritiska element i böjmrådet. Knappar, inmatningsfält och interaktiva element bör vara minst 24 dp från vecklinjen. Vecket (crease) — en inneboende egenskap hos flexibla skärmar, dess synlighet minskar med varje generation men försvinner inte helt.
Använd kontinuitet istället för avbrott. Vid utfällning bör innehållet flyta smidigt från den externa till den interna skärmen eller expandera över hela ytan. Undvik att ladda en ny Activity — använd omberäkning av layout inom samma skärm. Jetpack WindowManager spårar ändringar och meddelar applikationen via WindowLayoutInfo.
Ta hänsyn till gångjärnsvinkeln för kreativa scenarier. I foto- och videoapplikationer förvandlar halvöppet läge (90°) enheten till ett stativ: kameran filmar, den nedre delen av skärmen visar kontrollpanelen. Detta scenario är särskilt populärt i Samsung Camera och inbyggda applikationer.
Vanliga frågor
Kontrollera förekomsten av PackageManager.FEATURE_SENSOR_HINGE_ANGLE. Om true — är enheten vikbar med gångjärnsvinkelsensor. Kontrollera även DisplayFold API.
Prenumerera på WindowInfoTracker.windowLayoutInfo(). När FoldingFeature-tillståndet ändras, omstrukturera gränssnittet enligt Window Size Class och veckposition.
Jetpack WindowManager fungerar på API 14+. Men för FoldingFeature.HALF_OPENED krävs API 24+ (Android 7.0). Gångjärnsvinkelsensorn är tillgänglig på Android 10+.
Nej. Använd Window Size Class och Layoutomization från Jetpack WindowManager. Enhetlig kod med storleksklasskontroll ersätter separata resurslayouter.
De flesta vikbara enheter har IP48 eller IP58-skydd — begränsad vattentäthet. Under vatten kan den flexibla skärmen skadas, därför rekommenderas nedsänkning inte av tillverkarna.
Sammanfattning
Vi utvecklar en mobil applikation nyckelfärdigt
IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.
Läs också