以编程方式调整TextView的大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了以编程方式调整TextView的大小相关的知识,希望对你有一定的参考价值。

我的应用程序中有一个textView。现在,我想在点击时调整textView的大小。我给出了它的最大高度和最大宽度,但它没有调整大小并显示布局中定义的宽度和高度。任何帮助,将不胜感激

这是我的代码:

 <TextView
        android:id="@+id/textView2"
        android:layout_width="30dp"
        android:layout_height="40dp"
        android:layout_gravity="fill_horizontal"
        android:layout_marginLeft="10dip"
        android:layout_marginTop="10dip"
        android:text="Hello"/>
答案

从逻辑上讲,为什么在更改其最大高度和最大宽度时TextView会调整大小?你所说的是“TextView,无论你喜欢与否,你都是30dp x 40dp”。然后你过来说“哦,顺便说一句,如果有一天你可以获得更多的空间,你可以一直到40dp x 50dp,但现在你仍然是30dp x 40dp”。无论你让TextView有多大,它仍然是30dp x 40dp,因为你没有告诉它改变它的大小,你只是改变了它可能有多大。

如果你想改变这种行为,你需要做的就是说“嘿TextView,你可以自由地获得你想要的那么大,我已经把这些上限放在你身上了”。为此,您将使用如上所述/如下所示的LayoutParams。

// set the max height
textView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

这也假设您希望最大高度/宽度成为限制因素。如果你只想说“嘿textView,就是这个尺寸”,Ajay的答案就可以解决问题。

另一答案

看一下这个

TV= (TextView) findViewById(R.id.textView2);
TV.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
       final LayoutParams lparams = new LayoutParams(50,30); // Width , height
       TV.setLayoutParams(lparams);
    }
});
另一答案

你在代码中使用LayoutParams并将MATCH_PARENT设置为高度,然后添加类似的东西

textView.setLayoutParams(layoutParams);
另一答案

您可以使用setMaxLines(int)以编程方式调整TextView的大小。

以上是关于以编程方式调整TextView的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何调整textview的大小以不超出屏幕

以编程方式调整布局大小(作为动画)

如何以编程方式调整按钮动画的大小

如何在 TextView 中使用方向箭头

Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小

如何在 Swift 中以编程方式调整 UIButton 中文本的字体大小以适应宽度?