首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >RelativeLayout - android:layout_centerHorizontal="true“和android:gravity="center_horizontal”显示意外结果

RelativeLayout - android:layout_centerHorizontal="true“和android:gravity="center_horizontal”显示意外结果
EN

Stack Overflow用户
提问于 2017-03-09 05:09:03
回答 2查看 1.2K关注 0票数 2

我试图将一些TextViewsRelativeLayout中的水平中心对齐,但在使用某些属性时得到了一些意想不到的结果:

  1. 为什么第二个‘春、夏、秋、冬’TextView和第一个'Hello World‘TextView移动到水平中心(即使它们都使用不同的水平文本对齐方式) TextView的顶部

将其移动到屏幕中心(这不是我想要的)

是否有可用于将所有TextViews与水平中心对齐的属性?

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin">

        <TextView
            android:id="@+id/textView0"
            style="@android:style/TextAppearance.Medium"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:text="Spring Summer Autumn Winter"
            android:layout_marginBottom="20dp"
            android:textColor="@android:color/white" />

        <TextView
            android:id="@+id/textView1"
            style="@android:style/TextAppearance.Medium"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="Spring Summer Autumn Winter"
            android:layout_below="@id/textView0"/>

        <TextView
            android:id="@+id/textView2"
            style="@android:style/TextAppearance.Medium"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:text="Hello World"
            android:layout_below="@id/textView1"/>

        <TextView
            android:id="@+id/textView3"
            style="@android:style/TextAppearance.Medium"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:text="Hello World"
            android:layout_below="@id/textView2"/>
    </RelativeLayout>
</ScrollView>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-09 05:31:07

layout_center_horizontal -它只用于视图位置,而不是用于内部文本。您可以设置文本的重力来控制TextView中的对齐方式,但是如果您使用的是带有wrap_content视图的RelativeLayout,那么它就不起作用了,因为在这种情况下,文本已经很好地居中了。例如,使用match_parent将其更改为LinearLayout -并使用如下内容:

代码语言:javascript
复制
<TextView  
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:gravity="center"
android:text="@string/**yourtextstring**"
/>
票数 3
EN

Stack Overflow用户

发布于 2017-03-09 05:34:37

RelativeLayout.

  • android:layout_centerInParent="true"调整视图应该在屏幕中心水平时,
  1. android:gravity="center_horizontal"使用LinearLayout,而android:layout_centerHorizontal="true"使用屏幕中心调整视图。为此,请使用android:layout_centerHorizontal="true"。它适用于RelativeLayout.

对于所有TextView居中水平对齐,请使用父RelativeLayout中的android:gravity="center_horizontal"属性。或者android:layout_centerHorizontal="true"将其分配给每个TextView

下面的代码将为您工作。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
  <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    >

    <TextView
        android:id="@+id/textView0"
        style="@android:style/TextAppearance.Medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Spring Summer Autumn Winter"
        android:layout_marginBottom="20dp"
        android:textColor="@android:color/white"
        android:layout_centerHorizontal="true"/>

    <TextView
        android:id="@+id/textView1"
        style="@android:style/TextAppearance.Medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Spring Summer Autumn Winter"
        android:layout_below="@id/textView0"
        android:layout_centerHorizontal="true"/>

    <TextView
        android:id="@+id/textView2"
        style="@android:style/TextAppearance.Medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World"
        android:layout_below="@id/textView1"
        android:layout_centerHorizontal="true"/>

    <TextView
        android:id="@+id/textView3"
        style="@android:style/TextAppearance.Medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World"
        android:layout_below="@id/textView2"
        android:layout_centerHorizontal="true"/>
  </RelativeLayout>
</ScrollView>    
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42681957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档