Android: layout_gravity center 不居中

标签 android android-layout layout-gravity

我有一个问题,这可能很愚蠢,但我就是想不通为什么这不起作用。

基本上,我的 Activity 中有一个标题。此 header 应居中。

布局-XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

<TextView 
    style="@style/TextHeader"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/define"
    />
</LinearLayout>

styles.xml 中的定义

<style name="TextHeader">
    <item name="android:textSize">20dp</item>
    <item name="android:paddingTop">15dp</item>
    <item name="android:layout_gravity">center</item>
    <item name="android:paddingBottom">15dp</item>
</style>

据我理解,layout_gravity定义了组件本身的重力,而gravity定义了这个组件内容的重力。我尝试了两种方法,都使用 center 和 center_horizo​​ntal。我还制作了 header TextView layout_width:wrap_content 并尝试将其与 layout_gravity 居中,但结果始终如下(如果我将应用程序放在手机上也是如此)

enter image description here

为什么会这样?我该如何解决?

最佳答案

有几种不同的解决方案,这是一个:

<TextView
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="@string/define" />

这是另一个:

<RelativeLayout .../>

    <TextView
        ...
        android:centerInParent="true" />

</RelativeLayout>

您可以根据您选择的任何方法调整您的样式属性。

关于Android: layout_gravity center 不居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12149316/

相关文章:

Android:资源String自动生成

android-layout - PopupMenu 子菜单不遵守重力对齐

java - GSON 应为 BEGIN_ARRAY 但在第 1 行错误为 STRING

android - 将位图设置为 ImageView onActivityResult 不显示任何内容

java - fragment 或 Activity 中的抽屉导航?

android - 如何将媒体播放器控件实现为跨 Activity 持久的页脚

android - 为什么当我更改 Button 中的文本大小时,相邻的 Button 会移动

android - 使用 Android 数据绑定(bind)时,如何通过 xml 为自定义 setter 传递多个参数

android:gravity 没有对齐

android - LinearLayout 把 child 放在右边