프로그래밍 방식으로 ConstraintLayouts와 가이드 라인을 어떻게 만듭니 까? 위의 코드를 사용하여 가이드 라인을 사용하여 화면 중앙에 뷰를 고정시키는 간단한 레이아웃을 만들려고 시도했지만 화면의 왼쪽에 빨간색 'v'뷰를 렌더링합니다 (screenshot 참조)코드에서 안드로이드 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를 검사했다. 그래서 나는 실제로 beta3 인 것처럼 보이는 올바른 md5 (0b98641b30b62b65adbeba29d90d1107)를 가지고있다. – snoob
방금 동료가 제약 레이아웃 (오류없이 성공)을 설치하고 이것을 시도하면 그는 내가하는 것과 똑같은 부러진 행동을하게됩니다. beta3 사용. – snoob
나는 beta1로 올바른 동작을 얻는다. 그래서 이것은 베타 2의 회귀처럼 보입니다. 내 컴퓨터와 동료 컴퓨터에서이 사실을 확인했습니다. Android 5, Android 5, 6, 7 (모두 동일한 동작)을 사용하는 nexus 6에서 테스트되었습니다. – snoob