0

在更改文本大小时,我已经用尽了我的搜索来保持 TextView 居中。

这个网站上有很多类似的问题,但没有一个线程为我的问题提供解决方案。

在我的 XML 文件中,我有一个 RelativeLayout 和其中的 TextView(下面的代码)。

当以编程方式从 TextView 的 1 --> 300 更改文本大小,然后从 300 --> 1 更改回文本大小时,TextView 的位置会发生变化并向下移动到屏幕底部。

如何使 TextView 以一组动态的文本大小为中心?

这是我的xml文件

<RelativeLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:id="@+id/vgRelativeLayout">

    <TextView            
        android:id="@+id/tViewID"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"            
        android:layout_gravity="center"  
        android:center_vertical="true"
        android:center_horizontal="true" />   
</RelativeLayout>

如果您以编程方式执行以下操作,则 TextView 的位置将从 center_vertical 和 center_horizo​​ntal 属性设置的原始居中位置发生变化。

TextView 的新位置将在垂直刻度上向下移动。

水平刻度上的位置不变。

 TextView tView = (TextView) findViewById(R.id.tViewID);  

 tView.setTextSize(1);
 Thread.sleep(5000);

 tView.setTextSize(300);
 Thread.sleep(5000);

 tview.setTextSize(1);
4

2 回答 2

0

听起来您需要调用布局来重新布局。在这种情况下,您通常使用 RequestLayout(),可以通过获取对 RelativeLayout 的引用来调用它。

因此,您需要给RelativeLayout 一个Id,然后通过findViewById() 获取引用,然后在更改文本大小后调用RequestLayout。

于 2013-01-19T03:02:07.513 回答
0

试试这个 android:layout_centerHorizo​​ntal="true" & android:layout_centerVertical="true" 或者试试这个 android:layout_centerInParent="true"。如果它有效,请点击投票给我

于 2013-01-19T04:06:41.290 回答