コンテンツ ビューを に動的に挿入しており、挿入されたビューにプロパティCoordinatorLayout
を適用しlayout_below
て、 の後ろに隠れないようにしたいと考えていAppBar
ます。
注釈のxmlプロパティではなく、コードから実行時にこれを行う方法はありますか?
コンテンツ ビューを に動的に挿入しており、挿入されたビューにプロパティCoordinatorLayout
を適用しlayout_below
て、 の後ろに隠れないようにしたいと考えていAppBar
ます。
注釈のxmlプロパティではなく、コードから実行時にこれを行う方法はありますか?
一歩下がってプレーンな xml でビュー全体を構築すると、これlayout_below
は私のユース ケースに必要なプロパティではないことに気付きました。コンテンツ ビューをアプリ バーの下に配置することです。layout_below
ただし、これが適切なオプションであると想定したため、質問ではこれを明確にしませんでした。
実際、非スクロール ビューを に挿入するには、CoordinatorLayout
最初に でラップする必要がありandroid.support.v4.widget.NestedScrollView
ます。次に、そのコンテンツがアプリ バーの後ろに隠れないようにするために、その動作を に更新する必要がありandroid.support.design.widget.AppBarLayout.ScrollingViewBehavior
ます。それ以外の場合は、アプリ バーの後ろに隠れる既定の動作が使用されます。
val viewToInsert = getLayoutInflater.inflate( id, coordinatorWrapper, false )
val p = viewToInsert.getLayoutParams.asInstanceOf[Coordinator.LayoutParams]
p.setBehavior( new ScrollingViewBehavior )
coordinatorWrapper.addView( viewToInsert, 1, p )
を設定してみてくださいanchor
。
ContentView view = getContentView(); //your view
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) view.getLayoutParams();
params.setAnchorId(R.id.app_bar_layout);
params.anchorGravity = Gravity.BOTTOM; //we will anchor to the bottom line of the appbar
params.gravity = Gravity.BOTTOM; //we want to be BELOW that line
view.setLayoutParams(params);