2013-01-19 57 views
0

當我改變文本大小時,我已經用盡了搜索功能以保持TextView居中。android sdk如何讓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_HORIZONTAL屬性設置的原始中心位置發生變化。

TextView的新位置將在垂直檔位上向下移位。

水平檔位上的位置不變。

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

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

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

tview.setTextSize(1); 

回答

0

聽起來像你需要調用佈局重新做它的佈局。在這種情況下,您通常使用RequestLayout(),通過獲取對RelativeLayout的引用可以調用它。

所以你需要給RelativeLayout一個Id,然後通過findViewById()獲得引用,然後在你改變文本大小後調用RequestLayout。

+0

當我分配一個id給RelativeLayout,然後試圖找到它與findViewById(),我得到以下錯誤:'vgRelativeLayout無法解析或不是一個領域'。 – user1992128

+0

code: RelativeLayout rLayout =(RelativeLayout)findViewById(R.id.vgRelativeLayout); – user1992128

+0

聽起來像它沒有被正確編譯到生成的R文件中。什麼是你的新的XML代碼? –

0

試試這個android:layout_centerHorizo​​ntal =「true」& android:layout_centerVertical =「true」或試試這個android:layout_centerInParent =「true」。如果它的工作點擊投票我

+0

這些工作都不適用於TextView – user1992128

相關問題