将Anko视图的高度和宽度设置为match_parent

Muz*_*Muz 3 layout android kotlin anko

我想将视频视图的高度和宽度设置为match_parent。我的代码如下所示。它在没有heightand width属性的情况下可以工作,但是如下所示给我一个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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

zsm*_*b13 6

您必须lparams像这样设置布局参数(如果需要,可以省略显式参数名称):

videoView {
    id = ID_VIDEO
}.lparams (width = matchParent, height = matchParent)
Run Code Online (Sandbox Code Playgroud)

或者,您可以这样做:

videoView {
    id = ID_VIDEO
}.lparams {
    height = matchParent
    width = matchParent
}
Run Code Online (Sandbox Code Playgroud)

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


请注意,你必须有一个ViewGroup在你VideoView的根目录Activity的布局也有布局参数可用,因为这取决于它是否是在得到不同的人FrameLayoutLinearLayoutRelativeLayout

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

override fun createView(ui: AnkoContext<VideoActivity>) = with(ui) {
    frameLayout {
        videoView {
            id = ID_VIDEO
        }.lparams(matchParent, matchParent)
    }
}
Run Code Online (Sandbox Code Playgroud)