Android ConstraintLayout 以编程方式连接但只能从上到下工作
Android ConstraintLayout programmatically connect but only work top to top
LinearLayout.LayoutParams navigationBarParams =
new LinearLayout.LayoutParams(0, (int)(BAR_DEFAULT_HEIGHT_DP * density) );
_navigationBar.setId(R.id.navigation_fragment_navigation_bar);
_navigationBar.setPadding(0, 0, 0, 0);
_navigationBar.setLayoutParams(navigationBarParams);
_navigationBar.setOrientation(LinearLayout.HORIZONTAL);
_navigationBar.setBaselineAligned(false);
_navigationBar.setWeightSum(6f);
_navigationBar.setElevation(20.0f);
ConstraintLayout con = (ConstraintLayout)_rootView.findViewById(_rootConstraintLayoutId);
con.addView(_navigationBar);
ConstraintSet set = new ConstraintSet();
set.clone(con);
set.constrainWidth(_navigationBar.getId(), 0);
set.connect(_navigationBar.getId(), ConstraintSet.TOP, con.getId(), ConstraintSet.TOP, 100 ); //work!
set.connect(_navigationBar.getId(), ConstraintSet.LEFT, con.getId(), ConstraintSet.LEFT,100 ); //not work!!
set.connect(_navigationBar.getId(), ConstraintSet.RIGHT, con.getId(), ConstraintSet.RIGHT, 100 ); //not work!!
set.applyTo(con);
我将 LinearLayout 添加到根 ConstraintLayout。
并将约束 TOP 连接到 TOP,LEFT 连接到 LEFT,RIGHT 连接到 RIGHT,所有值为 100。
但只有最高价值 100 是有效的。
左边不行,右边不行。我的代码有什么问题?
android.support.constraint.ConstraintLayout
尝试删除它并使用
"LinearLayout"
您可以根据需要更改方向。
通过写
andriod:oreiantation="horizontal" 或 andriod:oreiantation="vertiacl"
由你选择
임근영 使用 Start 和 End 代替,这样您的视图将支持不同的语言。
set.connect(boton.getId() , ConstraintSet.START , ConstraintSet.PARENT_ID , ConstraintSet.START , 80);
我知道 google 上报告了一个错误。
LinearLayout.LayoutParams navigationBarParams =
new LinearLayout.LayoutParams(0, (int)(BAR_DEFAULT_HEIGHT_DP * density) );
_navigationBar.setId(R.id.navigation_fragment_navigation_bar);
_navigationBar.setPadding(0, 0, 0, 0);
_navigationBar.setLayoutParams(navigationBarParams);
_navigationBar.setOrientation(LinearLayout.HORIZONTAL);
_navigationBar.setBaselineAligned(false);
_navigationBar.setWeightSum(6f);
_navigationBar.setElevation(20.0f);
ConstraintLayout con = (ConstraintLayout)_rootView.findViewById(_rootConstraintLayoutId);
con.addView(_navigationBar);
ConstraintSet set = new ConstraintSet();
set.clone(con);
set.constrainWidth(_navigationBar.getId(), 0);
set.connect(_navigationBar.getId(), ConstraintSet.TOP, con.getId(), ConstraintSet.TOP, 100 ); //work!
set.connect(_navigationBar.getId(), ConstraintSet.LEFT, con.getId(), ConstraintSet.LEFT,100 ); //not work!!
set.connect(_navigationBar.getId(), ConstraintSet.RIGHT, con.getId(), ConstraintSet.RIGHT, 100 ); //not work!!
set.applyTo(con);
我将 LinearLayout 添加到根 ConstraintLayout。
并将约束 TOP 连接到 TOP,LEFT 连接到 LEFT,RIGHT 连接到 RIGHT,所有值为 100。
但只有最高价值 100 是有效的。
左边不行,右边不行。我的代码有什么问题?
android.support.constraint.ConstraintLayout
尝试删除它并使用
"LinearLayout"
您可以根据需要更改方向。 通过写
andriod:oreiantation="horizontal" 或 andriod:oreiantation="vertiacl"
由你选择
임근영 使用 Start 和 End 代替,这样您的视图将支持不同的语言。
set.connect(boton.getId() , ConstraintSet.START , ConstraintSet.PARENT_ID , ConstraintSet.START , 80);
我知道 google 上报告了一个错误。