我正在尝试在 Android Studio 3.2 Canary 13 上发布一个应用程序。当我在 Studio 上单击Build > Generate Signed APK时似乎没有任何反应。可能是什么问题呢?
我正在自学 Android Jetpack Compose,并试图了解有关可组合函数调用的一些内容。
Android 官方文档指出“只能从其他可组合函数的范围内调用可组合函数”。
我有这段代码在块Greeting内调用可组合 fxn setContent。
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
//calling Greeting() inside the setContent() block
Greeting("Me")
}
}
}
//Composable function
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!", modifier = Modifier.padding(16.dp))
}
Run Code Online (Sandbox Code Playgroud)
既然我们在其中调用了一个 Composable 函数,那么这是否会使setContent 块成为一个 Composable呢?
请大家发表一下自己的想法和意见,谢谢大家。
在 Android 视图系统中,您可以看到构成视图层次结构的不同元素的 UI 树,例如如下所示:
除了预览可组合物之外,我正在寻找一种在组件树中可视化可组合物的方法,例如给定以下代码:
@Composable
fun TodoScreen(....) {
Column(){
LazyColumn{
...}
Row{
Button(){....}
Text(){...}
}
}
}
Run Code Online (Sandbox Code Playgroud)
请让我知道是否有一种方法可以在 Android Studio Arctic Fox 上显示类似于上述 Android View Hierachy Image 的组件树。
我正在尝试从第一个屏幕导航到第二个屏幕,并且我需要提供一个整数标识符来从第二个屏幕上的 API 加载内容。
我在尝试传递 Int Nav 参数时遇到此错误。
java.lang.ClassCastException:java.lang.String无法转换为java.lang.Integer
这是我的 NavHost,我将/{recipeId}其用作第二个屏幕路线上的占位符。
NavHost(
navController = navController,
startDestination = Screens.RecipesOverviewScreen.route
) {
//1st Screen
composable(route = Screens.RecipesOverviewScreen.route) {
RecipesOverviewScreen(
navController = navController,
onToggleTheme = { app.toggleLightTheme() })
}
//2nd Screen
composable(route = "${Screens.RecipeDetailScreen.route}/{recipeId}")
{
RecipeDetailScreen()
}
Run Code Online (Sandbox Code Playgroud)
然后,我调用navController.navigate()第一个屏幕,将idInt 类型传递到导航路线中。
RecipeList(recipes = listState.recipes,
onClickRecipeCard = { id ->
//insert corresponding Int id into the Nav route
navController.navigate(
route = "${Screens.RecipeDetailScreen.route}/${id}"
)
}
Run Code Online (Sandbox Code Playgroud)
在第二个屏幕的 ViewModel 中,我使用 SavedHandleInstance 检索 nav 参数。 …
我正在开发一个简单的地图应用程序,我正在尝试使GoogleMap可组合的缩放动画 持续时间超过 1000 毫秒。
到目前为止我有这个代码:
Column( ... ) {
val destinationLatLng = LatLng(destination.lat, destination.lng)
val cameraPositionState = rememberCameraPositionState {
position = CameraPosition.fromLatLngZoom(destinationLatLng, 15f)
}
GoogleMap(
modifier = Modifier.fillMaxSize(),
cameraPositionState = cameraPositionState
//stuck on animating this
)
}
Run Code Online (Sandbox Code Playgroud)
在旧的 GoogleMap 视图中,我可以使用此示例代码为相机设置动画。
googleMap.animateCamera(CameraUpdateFactory.newCameraPosition), 1000, null)
Run Code Online (Sandbox Code Playgroud)
但是,在 Compose 中,我无法重新设计它来实现放大动画。
我已经查看了Maps SDK和Maps Compose 库的 Compose文档,但我仍然陷入困境。
请告诉我是否有办法在 Compose GoogleMap 中为相机设置动画
android google-maps android-jetpack-compose google-maps-compose
致力于 Android Instrumented Test 来启动和测试此片段
但我正在遇到这个令人讨厌的错误。
java.lang.ClassCastException: androidx.test.runner.AndroidJUnitRunner cannot be cast to org.robolectric.android.fakes.RoboMonitoringInstrumentation
at org.robolectric.android.internal.LocalActivityInvoker.getInstrumentation(LocalActivityInvoker.java:153)
at org.robolectric.android.internal.LocalActivityInvoker.startActivity(LocalActivityInvoker.java:40)
at androidx.test.core.app.ActivityScenario.launchInternal(ActivityScenario.java:265)
at androidx.test.core.app.ActivityScenario.launch(ActivityScenario.java:226)
at androidx.fragment.app.testing.FragmentScenario$Companion.internalLaunch$fragment_testing_release(FragmentScenario.kt:588)
at androidx.fragment.app.testing.FragmentScenario$Companion.launchInContainer(FragmentScenario.kt:559)
at com.example.android.architecture.blueprints.todoapp.taskdetail.TaskDetailFragmentTest.activeTasks_displayedInUi(TaskDetailFragmentTest.kt:35)Tests ran to completion.
Run Code Online (Sandbox Code Playgroud)
这些是我正在使用的依赖项
一直在网上寻找答案,但我没有找到任何有用的发现。
我可能会错过什么?
我正在遵循有关 RemoteMediator 的教程database.withTransaction{},一切都很好,直到我在使用允许数据库操作时遇到奇怪的错误。
不幸的是,IDE 似乎没有(或拒绝)识别这个非常真实和合法的块。我已检查是否正确定义了 ROOM 数据库抽象类,并在 build.gradle(app) 文件中声明了这些 ROOM 和 Paging 3 库。
// Room
implementation "androidx.room:room-runtime:2.4.3"
kapt "androidx.room:room-compiler:2.4.3"
// Room-paging artifact
implementation 'androidx.room:room-paging:2.4.3'
// Paging 3.0
implementation 'androidx.paging:paging-compose:1.0.0-alpha16'
Run Code Online (Sandbox Code Playgroud)
因此,我决定忽略该错误并继续调用块dao内的函数withTransaction{},但我得到Suspension functions can be call only inside a coroutine body。
这有点令人困惑,因为 RemoteMediator 的load()覆盖函数已经是一个挂起函数。
任何对这个问题有见解的人请帮忙,因为我似乎没有解决这个问题。
当使用自定义 Kotlin 对象作为 firestore 时,请删除“is”前缀。它毁了我一整天。
data class UberRequest(val geoPoint: GeoPoint? = null,
//don't use 'is' prefix on boolean properties
val isAccepted:Boolean = false,
@ServerTimestamp
val timestamp: Date? = null)
Run Code Online (Sandbox Code Playgroud) fastAny()我正在使用以下示例代码尝试 Kotlin 的 List Util函数:
fun main() {
val list = mutableListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val predicate = list.fastAny { it > 3 }
}
Run Code Online (Sandbox Code Playgroud)
函数正在Android project解析,但尚未解析IntelliJ project.

我可能会错过什么?