TextView在buttonClick上更改位置?

时间:2018-01-17 14:21:09

标签: android textview

这是一个快速的问题......

我遇到过一个我从未经历过的问题。 我有一个TextView显示LinnearLayout中的一条消息,其中Gravity设置为center_horizo​​ntal。按下按钮 - 相同的TextView文本将与我的资源中的另一个字符串交换。

但是,当我按下按钮时,重力会发生变化(?),而TextViews的位置现在就会离开而不是居中......

任何导致这种情况的想法?

继承我的代码: 字符串资源:

<string name="welcome_message">
    WELCOME, USER!
</string>

<string name="calculating_message">
    CALCULATING ORIENTATION...
</string>

XML:

<LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_horizontal">

        <TextView
            android:id="@+id/tvMessage"
            android:layout_marginTop="50dp"
            android:textColor="@android:color/white"
            android:text="@string/welcome_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="30dp"/>
</LinearLayout>

代码:

public void initializeComponents() {

        //textview
        tvMessage = (TextView) findViewById(R.id.tvMessage);

        //button
        btnGo = (Button) findViewById(R.id.btnGo);
            btnGo.setOnClickListener(new btnGoListener());
        }

private class btnGoListener implements View.OnClickListener {
        @Override
        public void onClick(View v) {
            tvMessage.setText(R.string.calculating); 
        }
    }

2 个答案:

答案 0 :(得分:1)

在不遵循正确的命名约定准则的情况下,从资源中更改字符串值。而Textview位置的变化是由于两个变化而发生的layout_gravity和gravity更好地了解它们之间的差异。我希望这能解决您的问题或者更好地发布您的源代码。

答案 1 :(得分:1)

您忘记了android:textAlignment="center"属性。您的文字对齐方式保留为默认值。

<TextView
    android:id="@+id/tvMessage"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="50dp"
    android:text="@string/welcome_message"
    android:textAlignment="center"
    android:textColor="@android:color/white"
    android:textSize="30dp" />

并将android:layout_width=更改为"match_parent"

抱歉英语不好。希望它有所帮助。