这是一个快速的问题......
我遇到过一个我从未经历过的问题。 我有一个TextView显示LinnearLayout中的一条消息,其中Gravity设置为center_horizontal。按下按钮 - 相同的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);
}
}
答案 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"
抱歉英语不好。希望它有所帮助。