我一直在做这个功课,但我遇到的所有建议似乎都没有起作用。我是Android应用程序的新手,虽然答案对某些人来说可能很简单,但我无法看到我出错的地方....
我有一个TextView字段,其中包含带换行符的字符串值(\ n)。在图形输出上,文本的下一行不以TextView容器为中心。我的代码如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView5"
android:layout_centerHorizontal="true"
android:layout_marginBottom="15dp"
android:text="@string/maxText"
android:textAlignment="gravity"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textStyle="bold" />
</RelativeLayout>
我的字符串如下:
<string name="maxText">My text part 1:\nMy text part 2</string>
输出文本的下面一行与容器对齐,但我需要它在中心。我已经尝试了我在论坛中遇到的所有建议等等 - 但无济于事。
任何帮助都会受到赞赏。
答案 0 :(得分:1)
实际上,我们并不需要将该文本放入两个文本视图中。
在XML文件中为包含textview的布局设置android:layout_gravity="center"
。
如果这不起作用。
尝试设置布局参数的重心,并以编程方式将此参数设置为布局。如下所示。
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
yourLayout.setLayoutParams(params);
yourLayout.setGravity(Gravity.CENTER);
这对我有用。
希望这也适合你。 :)
答案 1 :(得分:0)
解决此问题的唯一合理方法是创建两个文本视图,第二个文本视图紧接在第一个文本视图下方,并设置为android:layout_gravity="center"
和android:gravity="center"
答案 2 :(得分:0)
你可以在你的课程中尝试这个代码,我将它用于按钮,它运行良好,两条线都居中。我想它应该对TextView
:
String styledText = "My text part 1" + "<br />" + "My text part 2";
textView.setText(Html.fromHtml(styledText));
注意:所以你必须分别声明2个字符串并从资源中获取它们
答案 3 :(得分:0)
xml中最好的方法是添加属性
android:gravity="center_horizontal"