0
実行時に制約レイアウトで別のものを追加しようとしています。しかし、私はいつもただ一つのテキストビューで終わり、残りは隠れてしまいます。私はビューを連鎖させることを含むいくつかのことを試みましたが、何も動作していないようです。Android ConstraintLayout:動的ビューを別のものより下に追加する方法
private void method(int position)
{
ConstraintSet set = new ConstraintSet();
TextView textView = new TextView(getContext());
int textViewId = 100 + position;
//previousTextViewId = textViewId;
textView.setId(textViewId);
ConstraintLayout.LayoutParams layoutParams = new ConstraintLayout.LayoutParams(0, WRAP_CONTENT);
layoutParams.rightToRight = PARENT_ID;
layoutParams.leftToLeft = guideline_60.getId(); //Vertical GuideLine of 60%
layoutParams.rightMargin = 8;
textView.setLayoutParams(layoutParams);
if (Build.VERSION.SDK_INT < 23)
{
textView.setTextAppearance(getContext(), R.style.textStyle);
}
else
{
textView.setTextAppearance(R.style.textStyle);
}
textView.setBackgroundColor(backgroundColor);
textView.setText(categoryName);
textView.setGravity(Gravity.CENTER);
//markerLayout is the ConstraintLayout
markerLayout.addView(textView, position);
set.clone(markerLayout);
//set.addToVerticalChain(textView.getId(),previousTextViewId,PARENT_ID);
set.connect(textView.getId(), ConstraintSet.TOP, markerLayout.getId(), ConstraintSet.TOP, 60);
set.applyTo(markerLayout);
}
私はこのような何かを参照期待しています - あなたはすべてのtextviewsの上部は親の上部に接続されていると言っている
私はコードを一般化しようとしていたので、メソッドを "メソッド"に変更しました:)私はまだ以下のコードで同じ問題を抱えています。(position == 0) { Timber.d( "Position - " + position); set.connect(textView.getId()、ConstraintSet.TOP、markerLayout.getId()、ConstraintSet.TOP、16); } else { Timber.d( "Position - " + position); set.connect(textView.getId()、ConstraintSet.TOP、previousTextViewId、ConstraintSet.BOTTOM、16); } – sku
申し訳ありませんコードのスタイルを設定できません – sku
私の悪いあなたのソリューションは完璧に動作します。私はpreviousTextViewId = textViewIdを持っていた。 set.Connectの前に。私はそれを下に移動し、それは正常に働いた。おかげでニック。 – sku