2014-02-25 55 views
1

我想在運行時將某些textviews充氣到linearlayout。這在XML佈局(在textviews只是假人):在運行時在linearlayout中居中textview

<LinearLayout 
    android:id="@+id/show_textContainer" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerInParent="true" 
    android:gravity="center" 
    android:orientation="vertical" 

    > 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="10:20" 
     android:textAppearance="@style/hugeText" 
     /> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="10:15" 
     android:textAppearance="@style/mediumText" 
     /> 

    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:text="10:10" 
     android:textAppearance="@style/mediumText" 
     /> 


</LinearLayout> 

,這是從Android Studio中的呈現:

Rendering

在運行時創建自定義TextViews(名爲DynamicTextView)與我的定製風格:

public class DynamicTextView extends TextView { 
    public DynamicTextView(Context context) { 
     super(context, null, R.style.largeText); 
    } 
} 

(R.style.largeText是

<style name="largeText"> 
    <item name="android:layout_width">fill_parent</item> 
    <item name="android:gravity">center</item> 
    <item name="android:layout_height">wrap_content</item> 
</style> 

自定義文本視圖中添加在運行時也有一些自定義的textAppearance(相同的假人):

<style name="mediumText"> 
    <item name="android:textSize">@dimen/mediumTextDimen</item> 
    <item name="android:textColor">@color/alarmBlueMedium</item> 
    <item name="android:textStyle">bold</item> 

</style> 

你可能會認爲這兩個假人和運行textviews在對齊同樣的方式,但是,意外的驚喜,他們不這樣做:

Runtime

什麼的呼下回事d我無法理解?

回答

2

改變你的TextView的layout_widthfill_parentwrap_content

代碼片段

android:layout_width="wrap_content" 
+0

還好,不知道爲什麼,但我真的很期待match_parent(/ FILL_PARENT)將有必要中心的元素。謝謝! –

相關問題