4

我想将视频视图的高度和宽度设置为match_parent. 我的代码如下所示。它可以在没有heightandwidth属性的情况下工作,但是按照下面的方式进行操作会给我一个val cannot be reassigned错误。

class VideoActivityUI : AnkoComponent<VideoActivity> {
    companion object {
        val ID_VIDEO = 11
    }

    override fun createView(ui: AnkoContext<VideoActivity>) = with(ui) {
        videoView{
            id = ID_VIDEO
            height = matchParent
            width = matchParent
        }
    }
}
4

1 回答 1

7

您必须使用lparams来设置布局参数,如下所示(如果您愿意,可以省略显式参数名称):

videoView {
    id = ID_VIDEO
}.lparams (width = matchParent, height = matchParent)

或者,您可以这样做:

videoView {
    id = ID_VIDEO
}.lparams {
    height = matchParent
    width = matchParent
}

Anko 的相关 wiki 部分可以在这里找到。


请注意,您必须ViewGroup在 your 周围有一个VideoView作为 's 布局的根,Activity以便它具有可用的布局参数,因为它会根据它是在 a FrameLayoutLinearLayout还是RelativeLayout.

例如,使用简单的frameLayout,您的代码将如下所示:

override fun createView(ui: AnkoContext<VideoActivity>) = with(ui) {
    frameLayout {
        videoView {
            id = ID_VIDEO
        }.lparams(matchParent, matchParent)
    }
}
于 2017-06-13T09:33:26.073 回答