如何在android中将文本垂直居中对齐
我有阿拉伯语文本,所以我将重力设置为右侧,以便从右侧开始文本。文本从现在开始。但另一个问题是文本从页面顶部开始呈现。但我需要垂直居中文本。 虽然我尝试了几种不同的方法,但我无法使它垂直居中 这是我的xml文件的示例如何在android中将文本垂直居中对齐,android,android-layout,text,Android,Android Layout,Text,我有阿拉伯语文本,所以我将重力设置为右侧,以便从右侧开始文本。文本从现在开始。但另一个问题是文本从页面顶部开始呈现。但我需要垂直居中文本。 虽然我尝试了几种不同的方法,但我无法使它垂直居中 这是我的xml文件的示例 <LinearLayout android:id="@+id/linearLayout5" android:layout_width="fill_parent" android:layout_height=
<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>
<?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文件放在这里了
<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>
<?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>
但我的处境也一样。没有文本是垂直居中的您的TextView属性应该是
<TextView ...
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_vertical|right" ../>
使您的文本视图成为match\u parent
或fill\u parent
如果您不想成为这样,match\u parent
您必须为layout\u height
指定一些值,以便为垂直重心留出空间android:layout\u width=“match\u parent”
是必需的,因为它将文本视图对齐在右侧,这样您就可以识别文本视图的父布局
现在,它是关于android:gravity的TextView内容对齐android:layout_gravity
使TextView与其父布局对齐
更新:
正如下面的评论所说,使用fill\u parent
而不是match\u parent
。(某些设备出现问题。)尝试将android:gravity=“center\u vertical”\124; right”
放在父线布局中,否则当您在相对线布局中时,您可以将android:layout\u centerInParent=“true”放在您的滚动视图中
这样做可以使任何东西居中
android:layout_gravity="center"
android:gravity="center"
更新:
android:layout_gravity="center|right"
android:gravity="center|right"
更新:只需从文本视图中删除MarginBottom。。像这样做。。为您的文本视图
<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>
在相对布局中,您需要指定文本视图高度:
android:layout_height="100dp"
或指定行属性:
android:lines="3"
问题是文本视图中字体的填充。只需添加到您的文本视图:
android:includeFontPadding="false"
请避免使用“match_parent”。请改用fill_parent或wrap_内容。因为match_parent在某些设备中不支持。我也尝试了match_parent和fill_parent,因为我的应用程序支持旧版本,但运气不佳。我仍然面临同样的问题。文本仍然显示在顶部。仅出于调试和测试目的,您可以在TextView的LinearLayout
android:layout\u height=“200dp”
父视图中写入硬编码值。父视图和子视图具有相同的android:layout\u height=“wrap\u content”
。所以这一变化没有反映出来。(用户无法识别,因为重力已设置为垂直居中。
)。是否尝试更改线性布局。试试看,它会有用的。更新应答对textView和LinearLayout进行更改将其从textView中删除marginBottom。它会起作用的。。更新答案可以简要说明为什么您要求我删除底部的空白。我已经定下了目标。但我看不出删除它的明确原因..:(我这样做了,但仍然存在同样的问题。使用android:layout\u height=“24dp”
和android:textSize=“20dp”
和android:gravity=“center\u vertical”
的TextView
我观察到文本仍然与底部对齐。android:includefontpaidding=“false”
修复了我的问题!通常比android:lines=“3”更好的是android:maxLines=“3”
,提供了更灵活的布局,同时仍然修复了问题中的“bug”。