在 ConstraintLayout 中看不到我以编程方式添加的文本视图
Can't see my programmatically added textviews in ConstraintLayout
我在代码中的 ConstrainLayout 中添加了 2 个文本视图,但我看不到它们。
屏幕是空的。
请有人能帮我弄清楚这个吗?
非常感谢!
public class ActivitySixth extends AppCompatActivity {
private TextView tv1;
private TextView tv3;
private ConstraintLayout mConstraintLayout;
private static final int ID_CONS_LAY = 160;
private static final int ID_TV1 = 160;
private static final int ID_TV3 = 160;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sixth);
mConstraintLayout = findViewById(R.id.parent_Constraint);
ConstraintSet set = new ConstraintSet();
set.clone(mConstraintLayout);
tv1 = new TextView(this);
tv3 = new TextView(this);
tv1.setText("TextView number ONE");
tv3.setText("TextView number THREE");
tv1.setId(ID_TV1);
tv3.setId(ID_TV3);
mConstraintLayout.addView(tv1);
mConstraintLayout.addView(tv3);
set.connect(tv1.getId(), ConstraintSet.LEFT, R.id.parent_Constraint, ConstraintSet.LEFT, 0);
set.connect(tv3.getId(), ConstraintSet.RIGHT, R.id.parent_Constraint, ConstraintSet.RIGHT, 0);
set.applyTo(mConstraintLayout);
}
}
您好,请按照下面的代码
ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.mainConstraint);
ConstraintSet set = new ConstraintSet();
ImageView view = new ImageView(this);
layout.addView(view, 0);
set.clone(layout);
set.connect(view.getId(), ConstraintSet.TOP, layout.getId(), ConstraintSet.TOP, 60);
set.applyTo(layout);
TextView contactUs = new TextView(this);
contactUs.setText(R.string.contactus);
contactUs.setTextSize(25);
contactUs.setId(R.id.contactUs);
ConstraintLayout.LayoutParams clpcontactUs = new ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
contactUs.setLayoutParams(clpcontactUs);
constraintLayout.addView(contactUs);
ConstraintSet set = new ConstraintSet();
set.clone(mConstraintLayout);
set.connect(tv1.getId(), ConstraintSet.LEFT, R.id.parent_Constraint, ConstraintSet.LEFT, 0);
set.connect(tv3.getId(), ConstraintSet.RIGHT, R.id.parent_Constraint, ConstraintSet.RIGHT, 0);
set.applyTo(mConstraintLayout);
试试这样的东西..
参考。 http://www.zoftino.com/adding-views-&-constraints-to-android-constraint-layout-programmatically
首先,ID
s 应该不同,其次,您需要为 TextView
s 添加约束' width/height:
set.connect(tv1.getId(), ConstraintSet.LEFT, R.id.parent_Constraint, ConstraintSet.LEFT, 0);
set.constrainWidth(tv1.getId(), WRAP_CONTENT);
set.constrainHeight(tv1.getId(), WRAP_CONTENT);
set.connect(tv3.getId(), ConstraintSet.RIGHT, R.id.parent_Constraint, ConstraintSet.RIGHT, 0);
set.constrainWidth(tv3.getId(), WRAP_CONTENT);
set.constrainHeight(tv3.getId(), WRAP_CONTENT);
set.applyTo(mConstraintLayout);
顺便说一句,为了避免冲突,您可以使用资源定义ids xml。
在您的 res\values 文件夹中创建 ids.xml
定义 ID:
<resources>
<item type="id" name="textView1" />
</resources>
使用定义的id:
R.id.textView1
我在代码中的 ConstrainLayout 中添加了 2 个文本视图,但我看不到它们。 屏幕是空的。 请有人能帮我弄清楚这个吗? 非常感谢!
public class ActivitySixth extends AppCompatActivity {
private TextView tv1;
private TextView tv3;
private ConstraintLayout mConstraintLayout;
private static final int ID_CONS_LAY = 160;
private static final int ID_TV1 = 160;
private static final int ID_TV3 = 160;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sixth);
mConstraintLayout = findViewById(R.id.parent_Constraint);
ConstraintSet set = new ConstraintSet();
set.clone(mConstraintLayout);
tv1 = new TextView(this);
tv3 = new TextView(this);
tv1.setText("TextView number ONE");
tv3.setText("TextView number THREE");
tv1.setId(ID_TV1);
tv3.setId(ID_TV3);
mConstraintLayout.addView(tv1);
mConstraintLayout.addView(tv3);
set.connect(tv1.getId(), ConstraintSet.LEFT, R.id.parent_Constraint, ConstraintSet.LEFT, 0);
set.connect(tv3.getId(), ConstraintSet.RIGHT, R.id.parent_Constraint, ConstraintSet.RIGHT, 0);
set.applyTo(mConstraintLayout);
}
}
您好,请按照下面的代码
ConstraintLayout layout = (ConstraintLayout) findViewById(R.id.mainConstraint);
ConstraintSet set = new ConstraintSet();
ImageView view = new ImageView(this);
layout.addView(view, 0);
set.clone(layout);
set.connect(view.getId(), ConstraintSet.TOP, layout.getId(), ConstraintSet.TOP, 60);
set.applyTo(layout);
TextView contactUs = new TextView(this);
contactUs.setText(R.string.contactus);
contactUs.setTextSize(25);
contactUs.setId(R.id.contactUs);
ConstraintLayout.LayoutParams clpcontactUs = new ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT);
contactUs.setLayoutParams(clpcontactUs);
constraintLayout.addView(contactUs);
ConstraintSet set = new ConstraintSet();
set.clone(mConstraintLayout);
set.connect(tv1.getId(), ConstraintSet.LEFT, R.id.parent_Constraint, ConstraintSet.LEFT, 0);
set.connect(tv3.getId(), ConstraintSet.RIGHT, R.id.parent_Constraint, ConstraintSet.RIGHT, 0);
set.applyTo(mConstraintLayout);
试试这样的东西..
参考。 http://www.zoftino.com/adding-views-&-constraints-to-android-constraint-layout-programmatically
首先,ID
s 应该不同,其次,您需要为 TextView
s 添加约束' width/height:
set.connect(tv1.getId(), ConstraintSet.LEFT, R.id.parent_Constraint, ConstraintSet.LEFT, 0);
set.constrainWidth(tv1.getId(), WRAP_CONTENT);
set.constrainHeight(tv1.getId(), WRAP_CONTENT);
set.connect(tv3.getId(), ConstraintSet.RIGHT, R.id.parent_Constraint, ConstraintSet.RIGHT, 0);
set.constrainWidth(tv3.getId(), WRAP_CONTENT);
set.constrainHeight(tv3.getId(), WRAP_CONTENT);
set.applyTo(mConstraintLayout);
顺便说一句,为了避免冲突,您可以使用资源定义ids xml。
在您的 res\values 文件夹中创建
ids.xml
定义 ID:
<resources> <item type="id" name="textView1" /> </resources>
使用定义的id:
R.id.textView1