在 2 个现有元素之间垂直居中 TextView
Vertically centre TextView between 2 existing elements
我的 Android 项目中有一个 RelativeLayout 显示到一个简单的自定义对话框。我在顶部有一个标题,中间有一些文本,底部有一个按钮。我想要做的就是将文本居中置于标题 底部 和按钮 顶部 .
之间
当它居中时,TextView 顶部和标题底部之间的距离应该与 TextView 底部和按钮顶部之间的距离相同。
为此,我在我的相对布局中放置了一个框架布局,并将其放置在 'above the button' 和'标题下方。
我得到的是这样的:
这就是我想要实现的:
这是我的 XML(请注意,我以编程方式设置主 TextView 的文本)。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:gravity="fill"
android:background="#FFFFFF">
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Title"
android:layout_marginTop="10dp"
android:textColor="#000000"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="40dp">
</TextView>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_alignParentBottom="true"
android:textSize="25dp"
android:text="Click Me"
android:background="@drawable/buttonbk"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textStyle="bold">
</Button>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_above="@+id/button"
android:layout_below="@id/title" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="50dp"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:layout_gravity="center"
android:textSize="30dp"
android:textColor="#000000">
</TextView>
</FrameLayout>
</RelativeLayout>
没有机会尝试,但像这样的东西应该有用:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:fillViewport="true"
android:gravity="fill">
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="Title"
android:textColor="#000000"
android:textSize="40dp"></TextView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/text"
android:layout_below="@id/title"
android:background="#FFFFFF">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginTop="5dp"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:paddingTop="50dp"
android:textColor="#000000"
android:textSize="30dp"></TextView>
</RelativeLayout>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/buttonbk"
android:text="Click Me"
android:textSize="25dp"
android:textStyle="bold"></Button>
</RelativeLayout>
试试这个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:gravity="fill"
android:background="#FFFFFF">
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Title"
android:layout_marginTop="10dp"
android:textColor="#000000"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="40dp">
</TextView>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_alignParentBottom="true"
android:textSize="25dp"
android:text="Click Me"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textStyle="bold">
</Button>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/button"
android:layout_below="@id/title" >
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:layout_gravity="center"
android:textSize="30dp"
android:text="Hi Im textView"
android:textColor="#000000">
</TextView>
</FrameLayout>
这可能是您问题的可能解决方案。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white" >
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:background="@color/light_blue400"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="Title"
android:textColor="@color/black"
android:textSize="40dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/button"
android:layout_below="@id/title"
android:background="@color/light_blue100" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:text="Text centered vertically"
android:textColor="@color/black"
android:textSize="30dp" />
</RelativeLayout>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Click Me"
android:textSize="25dp"
android:textStyle="bold" />
</RelativeLayout>
这是结果(我对背景进行了着色以显示不同的区域)。
- 白色:主要相对布局
- 淡蓝色 400: Title TextView
- 淡蓝色 100:居中 TextView 的相对布局
我的 Android 项目中有一个 RelativeLayout 显示到一个简单的自定义对话框。我在顶部有一个标题,中间有一些文本,底部有一个按钮。我想要做的就是将文本居中置于标题 底部 和按钮 顶部 .
之间当它居中时,TextView 顶部和标题底部之间的距离应该与 TextView 底部和按钮顶部之间的距离相同。
为此,我在我的相对布局中放置了一个框架布局,并将其放置在 'above the button' 和'标题下方。
我得到的是这样的:
这就是我想要实现的:
这是我的 XML(请注意,我以编程方式设置主 TextView 的文本)。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:gravity="fill"
android:background="#FFFFFF">
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Title"
android:layout_marginTop="10dp"
android:textColor="#000000"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="40dp">
</TextView>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_alignParentBottom="true"
android:textSize="25dp"
android:text="Click Me"
android:background="@drawable/buttonbk"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textStyle="bold">
</Button>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_above="@+id/button"
android:layout_below="@id/title" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="50dp"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:layout_gravity="center"
android:textSize="30dp"
android:textColor="#000000">
</TextView>
</FrameLayout>
</RelativeLayout>
没有机会尝试,但像这样的东西应该有用:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:fillViewport="true"
android:gravity="fill">
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="Title"
android:textColor="#000000"
android:textSize="40dp"></TextView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/text"
android:layout_below="@id/title"
android:background="#FFFFFF">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_marginTop="5dp"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:paddingTop="50dp"
android:textColor="#000000"
android:textSize="30dp"></TextView>
</RelativeLayout>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/buttonbk"
android:text="Click Me"
android:textSize="25dp"
android:textStyle="bold"></Button>
</RelativeLayout>
试试这个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:gravity="fill"
android:background="#FFFFFF">
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Title"
android:layout_marginTop="10dp"
android:textColor="#000000"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="40dp">
</TextView>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_alignParentBottom="true"
android:textSize="25dp"
android:text="Click Me"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textStyle="bold">
</Button>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/button"
android:layout_below="@id/title" >
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:layout_gravity="center"
android:textSize="30dp"
android:text="Hi Im textView"
android:textColor="#000000">
</TextView>
</FrameLayout>
这可能是您问题的可能解决方案。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white" >
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center"
android:background="@color/light_blue400"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="Title"
android:textColor="@color/black"
android:textSize="40dp" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/button"
android:layout_below="@id/title"
android:background="@color/light_blue100" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:text="Text centered vertically"
android:textColor="@color/black"
android:textSize="30dp" />
</RelativeLayout>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="Click Me"
android:textSize="25dp"
android:textStyle="bold" />
</RelativeLayout>
这是结果(我对背景进行了着色以显示不同的区域)。
- 白色:主要相对布局
- 淡蓝色 400: Title TextView
- 淡蓝色 100:居中 TextView 的相对布局