【问题标题】:ConstraintLayout inside LinearLayout not workingLinearLayout 内的 ConstraintLayout 不起作用
【发布时间】:2017-11-27 17:09:27
【问题描述】:

我必须以编程方式将视图(其根视图可以是任何东西)添加到 LinearLayout 但如果该视图是 ConstraintLayout,它将无法按预期工作。为什么会发生这种情况,因为根据我的理解,无论其父视图是什么,子视图都必须工作。我该如何完成这项工作?

问题很简单,但我找不到解决这个问题的任何问题。

我附上截图来显示扭曲的视图:

原始视图 _____________________ 在线性布局中添加后的视图

_______

这里是代码:

override fun setContentView(view: View?) {
    val toolbar = layoutInflater.inflate(R.layout.view_toolbar, null, false)
    titleView = toolbar.findViewById(R.id.title) as TextView

    val finalView = LinearLayout(this)
    finalView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)
    finalView.orientation = LinearLayout.VERTICAL
    finalView.addView(toolbar)
    finalView.addView(view)
    super.setContentView(finalView)
}

我正在覆盖 Activity 的 setContentView 函数。

【问题讨论】:

  • 你在做 finalView.addView(view) 时是否尝试过明确设置 LayoutParams ?您也可以将其权重设为 1,以便它占据所有剩余空间。 编辑:实际上,我很确定 LinearLayoutParams.weight=1 就是您想要的
  • 体重?我真的应该试试吗?因为重量与为什么ConstraintLayoutLinearLayout 内部表现得很有趣这一事实无关。
  • @mbonnin 男人你美!有效。不是重量,而是在添加视图时明确设置LayoutParams

标签: android android-layout android-activity android-linearlayout android-constraintlayout


【解决方案1】:

事实证明,ConstraintLayoutLinearLayout 中没有任何问题。我只需要在添加视图时明确添加LayoutParams

override fun setContentView(view: View?) {
    val toolbar = layoutInflater.inflate(R.layout.view_toolbar, null, false)
    titleView = toolbar.findViewById(R.id.title) as TextView

    val finalView = LinearLayout(this)
    finalView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)
    finalView.orientation = LinearLayout.VERTICAL
    finalView.addView(toolbar)
    finalView.addView(view, LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT))
    super.setContentView(finalView)
}

【讨论】:

  • 对我来说我缺少方向
猜你喜欢
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多