ConstraintLayoutsとガイドラインをプログラムでどのように作成しますか?私は、ガイドラインを使用して画面の中央にビューを固定する単純なレイアウトを作成しようとしましたが、画面の左側に赤い 'v'ビューを表示します(screenshotを参照)コードのAndroid ConstraintLayoutとガイドラインを作成する
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ConstraintLayout cl = new ConstraintLayout(this);
cl.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
setContentView(cl);
Guideline gl = new Guideline(this);
ConstraintLayout.LayoutParams gllp = new ConstraintLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 500);
gllp.guidePercent = 0.5f;
gllp.orientation = LinearLayout.VERTICAL;
gl.setLayoutParams(gllp);
gl.setId(View.generateViewId());
cl.addView(gl);
View v = new View(this);
v.setId(View.generateViewId());
v.setBackgroundColor(0xFFFF0000);
ConstraintLayout.LayoutParams lp = new ConstraintLayout.LayoutParams(50, 500);
lp.rightToRight = gl.getId();
v.setLayoutParams(lp);
cl.addView(v);
}
}
私はbeta3も使用しています。これは非常に奇妙です。インストールしたときにhttps://code.google.com/p/android/issues/detail?id=227030にエラーが表示されましたが、エラーが発生してもインストールは成功します。実際のconstraint-layout-1.0.0-beta3.aarファイルのmd5を調べました。正しいmd5を持っています(0b98641b30b62b65adbeba29d90d1107)ので、本当にbeta3と思われます。 – snoob
私は同僚に制約レイアウト(エラーなしで成功)をインストールさせて、これを試してみて、私と同じ壊れた動作をします。 beta3を使用しています。 – snoob
私はbeta1で正しく動作します。だから、これはβ2の回帰であるように見えます。私は私のマシンと私の同僚のマシンでこれを確認しました。アンドロイド5を搭載したネクサス6と、アンドロイド5,6,7を搭載したエミュレータ(すべて同じ動作)でテストされています。 – snoob