在运行时将linearviewout中的textview居中

时间:2014-02-25 12:33:28

标签: android android-layout textview

我正试图在运行时将一些文本视图扩展为线性布局。这是xml布局(textviews只是假人):

<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>

你会期望假人和运行时文本视图以同样的方式对齐,但是,出乎意料的是,他们没有:

Runtime

我无法理解的幕后发生了什么?

1 个答案:

答案 0 :(得分:2)

将您的textview的layout_widthfill_parent更改为wrap_content

代码段

android:layout_width="wrap_content"