我有阿拉伯语文本,因此我将重力设置为右,以便从右侧开始文本。文字从现在开始。但另一个问题是文本开始从页面顶部呈现。但我需要垂直居中文本。 虽然我尝试了几种变化,但我无法将其垂直居中。
以下是我的xml文件示例。
<LinearLayout
android:id="@+id/linearLayout5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="23dp"
android:gravity="right"
android:padding="@dimen/padding_maintextview"
android:text="@string/text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20sp" />
</LinearLayout>
问题在于上面的textview。
这里我放了整个xml文件。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/page1background"
android:paddingRight="@dimen/padding_large" >
<TextView
android:id="@+id/textView1"
android:layout_width="196dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:paddingTop="@dimen/padding_Title_Top"
android:text="@string/text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20sp" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView1"
android:gravity="center_horizontal"
android:orientation="vertical" >
<View
android:id="@+id/view1"
android:layout_width="fill_parent"
android:layout_height="5dp" />
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_above="@id/linearLayout2"
android:layout_below="@id/linearLayout1"
android:layout_gravity="center"
android:padding="@dimen/padding_maintextview" >
<LinearLayout
android:id="@+id/linearLayout5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="23dp"
android:gravity="right"
android:padding="@dimen/padding_maintextview"
android:text="@string/text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20sp" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" >
<View
android:id="@+id/view2"
android:layout_width="fill_parent"
android:layout_height="100dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" >
<ImageButton
android:id="@+id/back_arrow"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:layout_marginRight="45dp"
android:layout_weight=".5"
android:background="@drawable/backbut"
android:contentDescription="@string/Description"
android:onClick="onClickBtn"
android:src="@drawable/backarrowpress" />
<ImageButton
android:id="@+id/copyButton"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:layout_weight=".5"
android:background="@drawable/copy"
android:contentDescription="@string/Description"
android:onClick="onClickBtn" />
</LinearLayout>
</RelativeLayout>
有人能告诉我我犯了哪些错误吗?我认为问题很清楚。如果不在评论中告诉我。
此处我在审核完您的答案后附上了更新的代码。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/page1background"
android:paddingRight="@dimen/padding_large" >
<TextView
android:id="@+id/textView1"
android:layout_width="196dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:paddingTop="@dimen/padding_Title_Top"
android:text="@string/text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20sp" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/textView1"
android:gravity="center_horizontal"
android:orientation="vertical" >
<View
android:id="@+id/view1"
android:layout_width="fill_parent"
android:layout_height="5dp" />
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/linearLayout2"
android:layout_below="@id/linearLayout1"
android:layout_gravity="center"
android:layout_centerInParent="true"
android:padding="@dimen/padding_maintextview" >
<LinearLayout
android:id="@+id/linearLayout5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_vertical"
android:layout_marginBottom="23dp"
android:gravity="center_vertical|right"
android:padding="@dimen/padding_maintextview"
android:text="@string/text"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="20sp" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" >
<View
android:id="@+id/view2"
android:layout_width="fill_parent"
android:layout_height="100dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" >
<ImageButton
android:id="@+id/back_arrow"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:layout_marginRight="45dp"
android:layout_weight=".5"
android:background="@drawable/backbut"
android:contentDescription="@string/Description"
android:onClick="onClickBtn"
android:src="@drawable/backarrowpress" />
<ImageButton
android:id="@+id/copyButton"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:layout_weight=".5"
android:background="@drawable/copy"
android:contentDescription="@string/Description"
android:onClick="onClickBtn" />
</LinearLayout>
</RelativeLayout>
但我情况相同。没有文字垂直居中
答案 0 :(得分:106)
您的TextView属性必须类似于
<TextView ...
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|right" ../>
现在,说明为什么需要这样做,
android:layout_width="match_parent"
android:layout_height="match_parent"
将TextView设为match_parent
或fill_parent
如果您不想这样,match_parent
您必须为layout_height
提供一些指定值,以便获得android:layout_width="match_parent"
垂直中心重力的空间。 android:gravity
是必需的,因为它将您的TextView与右侧对齐,以便您可以识别对TextView的父布局的尊重。
现在,它约为android:layout_gravity
,它使您的TextView内容保持一致。 fill_parent
使TextView的对齐符合其父布局。
<强>更新强>
如下所示,评论说使用match_parent
代替{{1}}。 (在某些设备中出现问题。)
答案 1 :(得分:17)
只需像这样使用任何东西来居中
android:layout_gravity="center"
android:gravity="center"
更新:
android:layout_gravity="center|right"
android:gravity="center|right"
更新:只需从文本视图中删除MarginBottom ..请执行以下操作..对于textView
<LinearLayout
android:id="@+id/linearLayout5"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" >
<TextView
android:id="@+id/textView2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center|right"
android:text="hello"
android:textSize="20dp" />
</LinearLayout>
答案 2 :(得分:8)
尝试将android:gravity="center_vertical|right"
置于父类LinearLayout中,因为您在RelativeLayout中,可以将android:layout_centerInParent="true"
放入scrollView
。
答案 3 :(得分:8)
问题是在textview上填充字体。只需添加到您的textview:
android:includeFontPadding="false"
答案 4 :(得分:0)
在相对布局中,您需要指定textview height:
android:layout_height="100dp"
或指定lines属性:
android:lines="3"