Java 如何以编程方式在constraintLayout上设置具有自动大小textType的textView?

Java 如何以编程方式在constraintLayout上设置具有自动大小textType的textView?,java,android-studio,textview,Java,Android Studio,Textview,嗨,我是个新手,需要帮助 我必须在Android Studio的编辑器上构建一个包含5个文本视图的ContrainLayout,现在我需要42次动态使用这个ContrainLayout。所以我找了一段时间寻找解决方案,找到了一些可行的方法。但结果并不是预期的结果 如何在Java代码上设置这些值 我试过这样的东西 GridLayout GridLayout=findViewById(R.id.kalenderfeldGL); ConstraintLayout tagesfeld=(Constr

嗨,我是个新手,需要帮助

我必须在Android Studio的编辑器上构建一个包含5个文本视图的ContrainLayout,现在我需要42次动态使用这个ContrainLayout。所以我找了一段时间寻找解决方案,找到了一些可行的方法。但结果并不是预期的结果


如何在Java代码上设置这些值

我试过这样的东西

GridLayout GridLayout=findViewById(R.id.kalenderfeldGL);
ConstraintLayout tagesfeld=(ConstraintLayout)gridLayout.getChildAt(0);
setId(View.generateView());
TextView标记名=新的TextView(此);
标记名.setId(View.generateViewId());
//标记名.setHeight(0);
//标记名.setWidth(0);
ConstraintLayout.LayoutParams cltagesfele=新ConstraintLayout.LayoutParams(ConstraintLayout.LayoutParams.MATCH\U CONSTRAINT\U PERCENT,ConstraintLayout.LayoutParams.MATCH\U CONSTRAINT\U PERCENT);
标记名.setLayoutParams(cltagesfele);
//标记名.setText(“MO”);
TextViewCompat.setAutoSizeTextTypeWithDefaults(标记名,TextViewCompat.AUTO\u SIZE\u TEXT\u TYPE\u UNIFORM);
标记名.setGravity(Gravity.CENTER | Gravity.CENTER |垂直| Gravity.CENTER |水平);
标记名.setTextAlignment(View.TEXT\u ALIGNMENT\u CENTER);
//标记名.setTextAlignment(View.TEXT\u ALIGNMENT\u CENTER);
//标记名.setText(“MO”);
tagesfeld.addView(标记名);
ConstraintSet cstagname=新ConstraintSet();
//克隆(塔格斯菲尔德);
cstagname.connect(标记名.getId(),ConstraintSet.TOP,tagesfeld.getId(),ConstraintSet.TOP,0);
cstagname.connect(标记名.getId()、ConstraintSet.START、tagesfeld.getId()、ConstraintSet.START、0);
cstagname.constraintPercentHeight(标记名.getId(),0.34F);
cstagname.constraintPercentWidth(标记名.getId(),0.34F);
cstagname.applyTo(塔格斯菲尔德);
标记名.setText(“MO”);

我希望“MO”字母在左上侧,这样可以,但字母不是并排的,而是在垂直位置,O在下侧切割。

尝试将textView的最大行限制设置为1,以防止“O”字母进入下一行。如下所示:

tagname.setMaxLines(1);
更新:

尝试使用以下方法减小
autoSizeTextType
的最小文本大小:

xml:

爪哇:

如中所述,默认值为
12sp

.

尝试将textView的最大行限制设置为1,以防止“O”字母进入下一行。如下所示:

tagname.setMaxLines(1);
更新:

尝试使用以下方法减小
autoSizeTextType
的最小文本大小:

xml:

爪哇:

如中所述,默认值为
12sp

.

java代码中的
app:layout\u constraintBottom\u toTopOf
app:layout\u constraintEnd\u toStartOf
等价物在哪里?这就是问题所在。我不知道如何在java代码中设置它。你能给我一个例子怎么做吗?首先,你应该有一个对它们的引用,你的java代码中有它们的ID吗?哦,很抱歉,我没有设置其他两个textview,但我想添加一个textview,如果这样做,我会继续使用我想要的其他东西。你为什么评论了
cstagname.clone(tagesfeld)java代码中的
app:layout\u constraintBottom\u toTopOf
app:layout\u constraintEnd\u toStartOf
等同物在哪里?这就是问题所在。我不知道如何在java代码中设置它。你能给我一个例子怎么做吗?首先,你应该有一个对它们的引用,你的java代码中有它们的ID吗?哦,很抱歉,我没有设置其他两个textview,但我想添加一个textview,如果这样做,我会继续使用我想要的其他东西。你为什么评论了
cstagname.clone(tagesfeld)我很高兴我能帮上忙:)我很高兴我能帮上忙:)
tagname.setAutoSizeTextTypeUniformWithConfiguration(10, 100, 1, TypedValue.COMPLEX_UNIT_DIP);