小编Anu*_*nth的帖子

当导航到 jetpack compose 中的可组合项时,如何自动将焦点请求到文本字段

我希望当用户导航到可组合项时,通过自动请求焦点放在 jetpack compose 中的文本字段上来弹出键盘。截至目前,这是我尝试过的,但似乎不起作用

val feedbackContent = remember { mutableStateOf(TextFieldValue()) }
val focusRequester = remember { FocusRequester() }

OutlinedTextField(
                modifier = Modifier
                    .clickable {
                        focusRequester.requestFocus()
                    }
                    .fillMaxWidth()
                    .focusRequester(focusRequester)
                    .focusable()
)
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-jetpack-compose-text

15
推荐指数
1
解决办法
7403
查看次数

如何从我的 Android 应用程序中删除 QUERY_ALL_PACKAGES 权限?

由于 Google 的反馈,我的 Google Play 更新版本已被拒绝 3 次。

\n

“应使用不太广泛的应用程序可见性方法\n我们无法批准您的应用程序\xe2\x80\x99s使用 QUERY_ALL_PACKAGES 权限,因为声明的任务可以使用不太广泛的应用程序可见性方法来完成。”

\n

我的应用程序不需要此权限,并且我尚未在清单文件中声明此权限。

\n

我已将以下查询元素添加到清单文件中以访问 WhatsApp、Gmail 包:

\n
    <queries>\n\n    <package android:name="com.whatsapp" />\n    <package android:name="com.google.android.gm" />\n    <intent>\n        <action android:name="android.intent.action.SEND" />\n        <data android:mimeType="text/plain" />\n    </intent>\n\n    <intent>\n        <action android:name="android.intent.action.SEND" />\n        <data android:mimeType="image/png" />\n    </intent>\n\n    <intent>\n        <action android:name="android.intent.action.VIEW" />\n        <category android:name="android.intent.category.BROWSABLE" />\n        <data android:scheme="https" />\n    </intent>\n\n</queries>\n
Run Code Online (Sandbox Code Playgroud)\n

以下是请求的权限列表:

\n
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />\n<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />\n<uses-permission android:name="android.permission.INTERNET" />\n<uses-permission android:name="android.permission.READ_CONTACTS" />\n<!-- Required only if your app targets Android 13. -->\n<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />\n<!-- Required to maintain app …
Run Code Online (Sandbox Code Playgroud)

android android-manifest android-permissions

12
推荐指数
2
解决办法
1万
查看次数

使用 Paging 3 时保存并保留 LazyColumn 滚动位置

我在我的活动中使用 Paging 3 Library with Lazy Column 和 BottomNavigation Menu。附加到 BottomNavMenu 的每个可组合屏幕都使用一个可组合,而后者又使用惰性列。当我使用 compose 导航库在可组合物之间导航时,我希望重新组合的可组合物保留滚动位置和 lazyListState

我尝试了以下但不起作用:

val listState = rememberLazyListState()
val scrollState = rememberScrollState()

LazyColumn(
        modifier = Modifier
            .fillMaxSize()
            .padding(bottom = 56.dp)
            .scrollable(scrollState, Orientation.Vertical),
        state = listState,
    ) {

//draw the items and hook the loadState to the lazy paging items
Run Code Online (Sandbox Code Playgroud)

每次我导航到这个可组合时,它都会重新组合,滚动位置设置为 0,这不是我想要的。处理这个问题的正确方法是什么

kotlin android-jetpack android-jetpack-navigation android-jetpack-compose

11
推荐指数
2
解决办法
1030
查看次数

在jetpack compose中过度滚动按钮

我试图确保有一个视觉指示,表明用户正在尝试滚动到底部,即使他已到达 LazyColumn 中列表的末尾。

默认情况下,此功能在 XML 布局中可用。

我们如何在 Jetpack compose 中实现这一点?对于顶部的过度滚动,我看到有一个“滑动刷新”等效项。目前有解决办法吗?

android android-jetpack-compose

5
推荐指数
1
解决办法
763
查看次数

如何在 jetpack compose 中使用 BottomBar 实现底部工作表

所以我想要实现的是:

  • 托管 BottomNav Bar 的家庭可组合项(此处使用脚手架)
  • 底部导航栏与其他 3 个可组合项相连
  • 3 个可组合项中的每一个都有自己的惰性列
  • 3 个惰性列中的每个项目都有一个菜单图标,单击该图标会打开底部工作表

借助此处答案,我可以通过将脚手架封装在 ModalBottonSheetLayout 内来实现上述目标:Jetpack Compose Scaffold + Modal Bottom Sheet

问题:

  • 底部工作表的目的是显示一个菜单项,单击该菜单项应从lazyColumn 中删除该项目
  • 因此底部工作表需要知道单击以删除它的项目的详细信息

我怎样才能做到这一点?主可组合项没有有关其托管的可组合项中存在的惰性列内的项目的任何信息。

有没有不同的方法来解决这个问题?

这是我的代码:

HomeComposable.kt

fun HomeComposable(homeViewModel: HomeViewModel, 
     navController: NavHostController) {
        ModalBottomSheetLayout(
           sheetContent = {
           //get the id of the message here so it can be     
           //deleted
               Button(
                   text = "delete Message")
                   onClick = deleteMessage(message.id
               )
           }
) {
    Scaffold(
    content = {
    NavHost(navController = navController, startDestination = 
    WHATS_NEW_COMPOSABLE) {

          composable(MESSAGES_COMPOSABLE) {
            MessageItemsComposable(
                homeViewModel,
                navController, …
Run Code Online (Sandbox Code Playgroud)

android android-jetpack-compose android-jetpack-compose-scaffold android-jetpack-compose-list jetpack-compose-navigation

5
推荐指数
1
解决办法
2332
查看次数