Android:如何将textview的文本放在其父级的中间

时间:2013-11-28 21:17:14

标签: android android-layout textview

我一直在寻找其他问题的答案,但我找不到我想要的答案。 我在LinearLayout中包含 TextView ,其中属性 android:layout_height android:layout_width 设置为 match_parent

 <LinearLayout
        android:id="@+id/mylayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerHorizontal="true"
        android:orientation="vertical">

        <TextView
            android:id="@+id/mytextview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:singleLine="false"
            android:text="@string/mytext"
            android:textSize="@dimen/mytextsize" />

    </LinearLayout>

我希望TextView文本在LinearLayout的中间开始;我的意思是,将文本垂直放置在LinearLayout的中间位置,但在 TextView 中保留 android:layout_height =“match_parent”

有可能??

在onCreate方法的java代码中,我有这个来获得父代的中间点:

LinearLayout myLinearlayout = (LinearLayout) findViewById(R.id.mylayout);
myLinearLayout.measure(MeasureSpec.UNSPECIFIED,MeasureSpec.UNSPECIFIED);
int linearLayoutHeight = myLinearLayout.getMeasuredHeight();
int middlePoint = linearLayoutHeight / 2;

现在,我不知道如何在这一点上定位文本的顶行。感谢

**编辑1 **

我忘了提到textview是可滚动的,文本太长了。

4 个答案:

答案 0 :(得分:2)

试试这个

<LinearLayout
android:id="@+id/mylayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:orientation="vertical">
<TextView
    android:id="@+id/mytextview"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center|left"
    android:singleLine="false"
    android:text="@string/mytext"
    android:textSize="@dimen/mytextsize"/>

答案 1 :(得分:1)

试试这个:

 <LinearLayout
    android:id="@+id/mylayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:orientation="vertical">

    <TextView
        android:id="@+id/mytextview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:singleLine="false"
        android:text="@string/mytext"
        android:textSize="@dimen/mytextsize" />

</LinearLayout>

答案 2 :(得分:0)

这会在TextView上方添加50%的空白区块,让人觉得TextView的位置略低于LinearLayout的中间位置。

 <LinearLayout
        android:id="@+id/mylayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <View
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />

        <TextView
            android:id="@+id/mytextview"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:singleLine="false"
            android:text="@string/mytext"
            android:textSize="@dimen/mytextsize" />

    </LinearLayout>

答案 3 :(得分:0)

//中心TextView

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="35dp"
    android:background="@drawable/header_footer_bankground_border_color"
    android:orientation="veritcal" >

    <TextView
        android:id="@+id/tv_welcome"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:gravity="center"
        android:text="Some text here"
        android:textSize="14sp"
        android:textStyle="bold" />
</LinearLayout>