0
LinearLayout
にプログラムでビュー(ルートビューは何でも構いません)をプログラムで追加する必要がありますが、そのビューがConstraintLayout
の場合は期待通りに機能しません。私の理解によれば、子ビューは、その親ビューが何であるかにかかわらず動作しなければならないので、これはなぜ起こるのですか?どのように私はこの作品を作るのですか?LinearLayout内のConstraintLayoutは機能しません
問題は非常に簡単ですが、私はこの問題に対処する質問を見つけることができません。私は歪んビュー表示するためにスクリーンショットを添付しています
:
元のビュー _____________________をVIEWここ_______
そして
がコードであるINSIDE LINEARレイアウトを追加した後:
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)
}
アクティビティのsetContentView
機能をオーバーライドしています。
finalView.addView(view)を実行しているときに、明示的にLayoutParamsを設定しましたか?残りのすべての領域を占めるように1の重みを付けることもできます。 **編集**:実際には、私はかなり確信していますLinearLayoutParams.weight = 1あなたが欲しいものです – mbonnin
重量?私は本当にそれを試すべきですか?なぜなら、体重は、 'ConstraintLayout'が' LinearLayout'の中でなぜ面白いのかという事実とは関係がないからです。 –
@mbonnin manあなたは美人!出来た。ウェイトなものではなく、ビューを追加するときに明示的に 'LayoutParams'を設定します –