0
    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 有效。左边不行,右边不行。我的代码有什么问题? 在此处输入图像描述

4

2 回答 2

1

임근영 使用 Start 和 End 代替,这样您的视图将支持不同的语言。

set.connect(boton.getId() , ConstraintSet.START , ConstraintSet.PARENT_ID , ConstraintSet.START , 80);

我知道谷歌报告了一个错误。

于 2018-02-24T23:24:16.010 回答
-1

android.support.constraint.ConstraintLayout

在那尝试删除它并使用

“线性布局”

您将能够随心所欲地改变方向。通过写作

andriod:oreiantation="horizo​​ntal" 或 andriod:oreiantation="vertiacl"

这是你的选择

于 2017-06-27T14:18:57.273 回答