小编Mih*_*aiV的帖子

Android MotionLayout setGuidelinePercent 不适用于 alpha4 版本

我的应用程序中有一个用于滑动过渡的 MotionLayout。目前我刚刚更新2.0.0-alpha32.0.0-alpha4发布,有些事情不像以前那样工作。有一个“myView”,它是一个应该从屏幕底部扩展到标题视图的布局。它对指南有一个约束顶部,我需要以编程方式控制(基于一些用户操作)。

代码中没有其他更改,因此降级到 alpha3 会使一切按预期工作。

代码非常基本:

<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:motion="http://schemas.android.com/apk/res-auto">

    <Transition
        motion:constraintSetEnd="@id/end"
        motion:constraintSetStart="@id/start"
        motion:duration="1000"
        motion:interpolator="linear">
        <!-- I used motion:motionInterpolator="linear" for alpha4-->

        <OnSwipe
            motion:dragDirection="dragUp"
            motion:touchAnchorId="@id/myView"
            motion:touchAnchorSide="top" />

    </Transition>

    <ConstraintSet android:id="@+id/start">
        <Constraint
            android:id="@id/myView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            motion:layout_constraintStart_toStartOf="parent"
            motion:layout_constraintTop_toTopOf="@id/myGuideline" />
    </ConstraintSet>

    <ConstraintSet android:id="@+id/end">
        <Constraint
            android:id="@id/myView"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            motion:layout_constraintBottom_toBottomOf="parent"
            motion:layout_constraintStart_toStartOf="parent"
            motion:layout_constraintTop_toBottomOf="@id/someHeaderView" />
    </ConstraintSet>
</MotionScene>
Run Code Online (Sandbox Code Playgroud)

问题是在 alpha3 版本中,我可以使用这样的东西(并且它有效):

myMotionLayout.getConstraintSet(R.id.start)?.setGuidelinePercent(R.id.myGuideline, guidelinePercentage)
Run Code Online (Sandbox Code Playgroud)

现在我升级到2.0.0-alpha4,这不再有效,我不明白为什么。它始终采用 xml 中的默认值,并且在我尝试动态执行时永远不会更改。

我想要做的是根据一些动态数据(在 Fragment 的开头或用户返回时可用)更改过渡的起点。如果您对我如何使用 MotionLayout 实现这一点有更好的想法,请给我一个提示。

摇篮实现:

implementation "com.android.support.constraint:constraint-layout:2.0.0-alpha4"
Run Code Online (Sandbox Code Playgroud)

android android-layout kotlin android-motionlayout

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

Kotlin 暴露未解决的参考:referencedOn

我正在尝试使用框架开发 REST API Ktor,在阅读了一些教程和官方文档后,我刚刚实现了一个示例代码。我也在使用 Kotlin Exposed,我只是想创建一些数据库表并连接它们。所以我做了两个类UsersRepo并且RolesRepo都扩展了IntIdTable. 我只想在这两个表之间建立一对一的关系,所以我做了这样的事情:

object UsersRepo : IntIdTable("userId") {
    val displayName = varchar("display_name", 256)
    val role = reference("role", RolesRepo)
}
Run Code Online (Sandbox Code Playgroud)

然后,我只想为用户实现实体类,而 IDE 无法识别该referencedOn关键字。在此输入图像描述

我不知道我在这里缺少什么。我正在使用 Ktor 和 Kotlin1.4.0以及 Kotlin Exposed 版本0.25.1

    implementation "org.jetbrains.exposed:exposed-core:$exposed_version"
    implementation "org.jetbrains.exposed:exposed-dao:$exposed_version"
    implementation "org.jetbrains.exposed:exposed-jdbc:$exposed_version"
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-exposed ktor

0
推荐指数
1
解决办法
1785
查看次数