Android textview.setText () теряет гравитацию? - PullRequest
2 голосов
/ 29 января 2012

У меня есть простой макет, который содержит TextView между двумя ImageViews.

Когда я изменяю TextView во время выполнения с помощью setText (), он изменяется, но теряет гравитацию "center_horizontal" и рисуется в верхней части линейного макета.

Как сделать так, чтобы TextView отображалось с гравитацией center_horizontal после setText ()?

</RelativeLayout
    android:id="@+id/rl1"
    style="@style/style1"
    android:layout_width="fill_parent"
    android:orientation="horizontal" >

        ...        

    <LinearLayout
        android:id="@+id/ll1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_margin="5dp"
        android:background="@drawable/frame"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/iv2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="3dp"
            android:src="@drawable/icon" />

        <TextView
            android:id="@+id/tv1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:text="0"
            android:textColor="@drawable/white" />

        <ImageView
            android:id="@+id/iv1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="3dp"
            android:src="@drawable/icon" />

    </LinearLayout>
        ...
</RelativeLayout>

Спасибо!

1 Ответ

2 голосов
/ 29 января 2012

Метод setText обычно не влияет на порядок расположения.В настоящее время я могу думать только об одной возможной проблеме: ваш заданный текст является либо очень длинным, либо очень коротким, и, поскольку вы указали размеры как «wrap_content», ширина и высота вашего текстового представления совпадает с новым содержанием.Это приводит к слиянию нового макета.Чтобы решить эту проблему, вы можете сделать следующее:

 <TextView
            android:id="@+id/tv1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="0"
            android:textColor="@drawable/white" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...