小编ale*_*rdi的帖子

Compose LazyList 部分背景

我无法确定我的问题是否是 Jetpack Compose 缺少功能,或者我是否无法找到它是如何完成的。

\n

假设我想制作此页面

\n

在此输入图像描述

\n

它需要可滚动,因为内容很长。

\n

我还想使用惰性列来加载图像中显示的用户列表。

\n

问题是你不能在垂直可滚动布局中使用 LazyColumn,所以我想我只需将整个页面设置为 LazyColumn。\n现在还有另一个问题,我希望用户列表周围有一个框如图所示的背景颜色和圆形边框,但是您不能在 LazyListScope.items() 周围放置一个框,如果您将列表加载为单个可组合项(如 item { UserList()\xc2\xa0} ),那么它只会使它是一列,失去了懒惰的部分。

\n

一个人会怎样做呢?

\n

android android-jetpack android-jetpack-compose android-jetpack-compose-list

13
推荐指数
1
解决办法
4583
查看次数

如何在 Jetpack Compose 中实现这种布局

我正在尝试使用新的 Jetpack Compose UI 框架,但遇到了问题。我想实现这个布局,在 xml 中很容易实现:

正确布局

但我无法弄清楚如何使垂直分隔线占用可用的垂直空间,而不指定固定的高度。我尝试过的这段代码似乎不起作用:

@Composable
fun ListItem(item: PlateUI.Plate) {
    Surface(
        modifier = Modifier.fillMaxWidth(),
        shape = RoundedCornerShape(8.dp),
        elevation = 2.dp
    ) {
        Row(
            modifier = Modifier.fillMaxWidth(),
            verticalAlignment = Alignment.CenterVertically
        ) {
            Column(
                modifier = Modifier
                    .padding(8.dp),
                horizontalAlignment = Alignment.CenterHorizontally
            ) {
                Text(text = "Code")
                Text(text = item.code)
            }
            Spacer(
                modifier = Modifier
                    .preferredWidth(1.dp)
                    .background(color = MaterialTheme.colors.onSurface.copy(0.12f))
            )
            Spacer(modifier = Modifier.weight(1f))
            Text(
                modifier = Modifier
                    .padding(horizontal = 8.dp, vertical = 34.dp),
                text = item.name
            )
            Spacer(modifier = Modifier.weight(1f)) …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-jetpack-compose

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

访问伴侣对象外的方法 - Kotlin

我对kotlin很新,我想知道它是否可能,并且如果从配对对象中访问伴随对象之外的方法和变量是违反最佳实践的.

例如

class A {
    fun doStuff(): Boolean = return true

    companion object{
        public fun stuffDone(): Boolean = return doStuff()
    }
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西

谢谢

kotlin companion-object

9
推荐指数
1
解决办法
7215
查看次数

停止用户滚动以在RecyclerView上设置位置

所以我有一个问题,我对Android编程很新,自从我开始编写Android应用程序以来只有6-8周,所以我可能会失明并且看不到简单的答案,但这是我的问题:

我正在制作一个学校项目,我正在尝试开发一个与今天的日历分割视图(下面的那个)相似的日历

图片1

所以我使用GridLayoutManager制作了一个RecyclerView,如下所示:

图2

直到这里一切都很好,但我正在尝试实现在今天的日期设置日历的按钮,事情就是当我滚动时,然后使用scrollToPositionWithOffset(position,0)设置RecyclerView位置; 视图保持从第一次投掷中获得的动量,设置位置然后继续滚动直到动量消失

我搜索了很多寻找解决方案,当我使用gridView而不是RecyclerView时,我使用了smoothScrollToPositionFromTop()来停止滚动,然后使用setSelection()来定位它,但是gridView跳过了框架,我不得不改变,这里使用RecyclerView没有smoothScrollToPositionFromTop和smoothScrollToPosition不会停止滚动,scrollToPosition或scrollToPositionWithOffset也没有.

发现这一点,但没有帮助Scroll RecyclerView在顶部显示所选项目

和其他许多没有帮助的人.

我考虑过实现自己的滚动逻辑,但当我调查它时,我的头部爆炸,我不知道从哪里开始.

有谁知道如何解决这个问题?

android scroll android-recyclerview

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

以编程方式更改Android的EditText光标指针颜色

所以,我已经搜索了很多,但我找不到任何东西,如果这最终成为重复我很抱歉,但我想伪装EditText的光标指针的颜色,用于移动光标

在此输入图像描述

我已经设法改变了光标的颜色,但它不会影响指针,它似乎只响应accentColor.

我很确定它是可能的,因为我记得看到一个应用程序执行它,它有指针和对话框中的所有元素根据您选择的颜色更改颜色而不更改对话框下方视图的强调颜色.

请帮忙 :)

android pointers colors android-edittext

6
推荐指数
2
解决办法
6661
查看次数

如何在图书馆中使用 Realm

我正在尝试了解如何在我正在制作的库中使用 Realm,经过几天的研究,我现在了解了 RealmModules(如果 Realm 的人读到了这篇文章,那么您确实应该改进有关库中使用的文档)。我创建了一个简单的类,为我提供了库配置的领域:

object ChatRealm {
    fun getChatRealm(): Realm{
        val config = RealmConfiguration.Builder()
                .name("mtchat_realmDB")
                .schemaVersion(2)
                .deleteRealmIfMigrationNeeded()
                .modules(ChatModule())
                .build()
        return Realm.getInstance(config)
    }
}
Run Code Online (Sandbox Code Playgroud)

模块是这个

@RealmModule(library = true, allClasses = true)
class ChatModule {}
Run Code Online (Sandbox Code Playgroud)

在项目应用程序类中我设置了这样的领域

class App: Application() {
    override fun onCreate() {
        super.onCreate()

        initRealm()
        setupRealm()
    }

    private fun initRealm() {
        Realm.init(this)
    }

    private fun setupRealm(){
        Realm.setDefaultConfiguration(
                RealmConfiguration.Builder()
                        .deleteRealmIfMigrationNeeded()
                        .modules(Realm.getDefaultModule(), ChatModule())
                        .build()
        )
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我遇到的麻烦是,根据我配置 gradle 文件的方式,构建失败或应用程序因各种原因崩溃。

我的 :app gradle 是这样的

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: …
Run Code Online (Sandbox Code Playgroud)

android module realm android-library kotlin

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

具有 Room 和状态处理功能的 Kotlin 协程流

我正在尝试新的协程流程,我的目标是创建一个简单的存储库,可以从 Web api 获取数据并将其保存到数据库,还可以从数据库返回流程。

我使用 room 和 firebase 作为 Web api,现在一切看起来都非常简单,直到我尝试将来自 api 的错误传递到 ui。

由于我从数据库获取的流仅包含数据而没有状态,因此通过将其与 Web api 结果相结合来为其提供状态(如加载、内容、错误)的正确方法是什么?

我写的一些代码:

DAO:

@Query("SELECT * FROM users")
fun getUsers(): Flow<List<UserPojo>>
Run Code Online (Sandbox Code Playgroud)

存储库:

val users: Flow<List<UserPojo>> = userDao.getUsers()
Run Code Online (Sandbox Code Playgroud)

API 调用:

override fun downloadUsers(filters: UserListFilters, onResult: (result: FailableWrapper<MutableList<UserApiPojo>>) -> Unit) {
    val data = Gson().toJson(filters)

    functions.getHttpsCallable("users").call(data).addOnSuccessListener {
        try {
            val type = object : TypeToken<List<UserApiPojo>>() {}.type
            val users = Gson().fromJson<List<UserApiPojo>>(it.data.toString(), type)
            onResult.invoke(FailableWrapper(users.toMutableList(), null))
        } catch (e: java.lang.Exception) {
            onResult.invoke(FailableWrapper(null, "Error parsing data"))
        }
    }.addOnFailureListener {
        onResult(FailableWrapper(null, …
Run Code Online (Sandbox Code Playgroud)

android firebase android-room kotlin-coroutines kotlin-flow

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

聚合物点击iOS上的重新路由

我正在使用一个隐藏的 <input id="mfile" type="file" accept="image/*"> 触发器与谷歌的元素目录中的纸制品.除了iOS上的safari之外,它可以在任何地方使用,点击会触发,但不会重定向到输入.

通过重定向,我的意思是触发器上的触发器上的触发器 this.$.mfile.click();

有任何建议或解决方法吗?

safari ios polymer

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