代码之家  ›  专栏  ›  技术社区  ›  Fabrizio Mele

运行时在linearlayout中居中文本视图

  •  1
  • Fabrizio Mele  · 技术社区  · 11 年前

    我试图在运行时将一些文本视图膨胀为线性布局。这是xml布局(文本视图只是虚拟的):

    <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

    在运行时,我使用自定义样式创建自定义文本视图(名为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>
    

    )

    在运行时添加的自定义文本视图还具有一些自定义文本外观(与虚拟视图相同):

    <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 回复  |  直到 11 年前
        1
  •  2
  •   Kaushik    11 年前

    更改文本视图 layout_width 从…起 fill_parent wrap_content

    代码段

    android:layout_width="wrap_content"