lam bui
07/22/2024, 2:14 AMTolriq
07/26/2024, 8:52 AMTolriq
07/26/2024, 8:53 AMlam bui
07/30/2024, 7:32 AMlam bui
08/06/2024, 4:43 AMIs there a way on Android to build a phone app attach build wear like Apple?
I'm looking for a way to automatically build for testing. Without going through android studio.
lam bui
08/14/2024, 9:17 AMmarlonlom
08/19/2024, 10:01 PMwear-compose-material3
with wear-compose-material
libraries... so, when building an app, the scaffold that exists in the wear-foundation library is not showing the composables that belongs to wear-compose-material3
library.Zach Klippenstein (he/him) [MOD]
09/09/2024, 4:06 PMyschimke
09/13/2024, 9:55 AMShashi K
09/17/2024, 3:53 AMlouiscad
09/26/2024, 11:16 PManimateItem()
for ScalingLazyColumn in Horologist, or in Wear Compose Foundation?
I need to animate item additions, removals, and order changes.stevebower
10/03/2024, 11:28 AMTolriq
10/04/2024, 10:02 AMamoledwatchfaces
10/20/2024, 12:54 PMTolriq
10/31/2024, 9:19 AManimatePlaceholder
then there's no recomposition on isContent ready change. (Also if you remove the placeholderShimmer
so not tied to shimmer.Jeremiah Jordan
11/21/2024, 1:36 AMcreateGraph
and composable(Screen.MainMenu.route)
set I get a casting error:
java.lang.ClassCastException: androidx.navigation.testing.TestNavigatorProvider$navigator$1 cannot be cast to androidx.wear.compose.navigation.WearNavigator
at androidx.wear.compose.navigation.NavGraphBuilderKt.composable(NavGraphBuilder.kt:55)
at androidx.wear.compose.navigation.NavGraphBuilderKt.composable$default(NavGraphBuilder.kt:36)
If I don't create a graph, I get a null-pointer error, since there's nowhere to navigate to.
All the examples I see online seem to be using R.navigation
, but I think that's used when your app uses an XML navigation definition, and not jetpack compose...Jeremiah Jordan
11/22/2024, 10:02 PMflorent
11/27/2024, 7:04 PMLauri Koskela
12/15/2024, 11:20 AMmarlonlom
12/15/2024, 11:07 PMstevebower
12/18/2024, 10:59 AMyschimke
01/28/2025, 11:45 AMstevebower
01/30/2025, 12:17 PMstevebower
02/17/2025, 5:04 PMstevebower
02/27/2025, 5:52 PMstevebower
03/14/2025, 3:41 PMSurfaceTransformation
parameter for use with TransformingLazyColumn. Card, ListHeader, RadioButton, CheckboxButton, SwitchButton no longer constrain their height using Modifier.height(IntrinsicSize.Min) - this has a performance benefit (as it avoids laying content out twice), but where necessary it can be added back on the modifier parameter.
Please see the release notes for more details - thanks.yschimke
03/31/2025, 7:03 AMLauri Koskela
04/28/2025, 5:06 PMComposeTestRule
for UI automation when generating baseline profiles? UiAutomator does not really seem to work that well with compose+wear (e.g. scrollUntil
does not detect scrolling), and I'm wondering if Compose's better UI testing APIs could be used here
I tried to use createEmptyComposeRule
but that does not seem to work either ("No compose hierarchies found in the app")Lauri Koskela
05/04/2025, 12:44 PMscrollable
implementation that sometimes passes drag gestures to the activity and some times not. Here's a minimal sample:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
installSplashScreen()
super.onCreate(savedInstanceState)
setContent { WearApp() }
}
override fun onTouchEvent(event: MotionEvent?): Boolean {
Log.d(TAG, "onTouchEvent: $event")
return super.onTouchEvent(event)
}
}
@Composable
fun WearApp() {
MyTestAppComposeTheme {
Box(
modifier = Modifier.fillMaxSize().padding(horizontal = 8.dp)
) {
val offsetX = remember { mutableFloatStateOf(0f) }
val scrollState = rememberScrollableState {
offsetX.floatValue += it
it
}
Box(
modifier = Modifier
.fillMaxRectangle()
.border(width = 1.dp, color = Color.White)
.scrollable(scrollState, Orientation.Horizontal)
contentAlignment = Alignment.Center
) {
Text(offsetX.floatValue.toString())
}
}
}
}
This renders a box that is horizontally swipeable. As far as I know it should never let the activity swipe-to-dismiss trigger as long as the scrolling gestures start inside the box, right?
Defining horizontal scroll semantics mostly fixes this; for example adding this after .scrollable
in the above snippet
.semantics {
horizontalScrollAxisRange = ScrollAxisRange(
{ offsetX.floatValue }, { 100f /* dummy value */ })
},
Is it a bug or should this be working without the semantics modifier? I know horizontal scrolling has been discussed many times here but I could not find this particular issue anywherestevebower
05/08/2025, 10:49 AM