【发布时间】:2014-01-29 22:53:15
【问题描述】:
我的应用程序上有一些 TextView,我不知道为什么,但 android:gravity 属性没有将文本内容居中,它应该在运行 API 18+ (4.3+) 的设备上。
有我在自定义TextView 上使用的代码,这是RelativeLayout 的子代:
<com.package.custom.CustomTextFont
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/seekbar"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/seekbar"
android:layout_marginLeft="@dimen/margin_tiny_double"
android:layout_toLeftOf="@+id/seekbar"
android:gravity="center_vertical|left"
android:paddingRight="@dimen/margin_tiny"
android:text="@string/text1"
android:textColor="@color/black"
android:textSize="@dimen/size_text_normal" />
这段代码应该取TextView 的边缘并将其与顶部和底部对齐,并将其放在SeekBar 的左侧,这是可行的,但是TextView 变大了,所以使用@987654329 @我将文本居中居中并从其自身离开。它有效,但我不知道为什么,在运行 android 4.3 和 4.4 的设备上,文本不在中心|左侧居中。此问题可以在真实设备上重现,也可以在 Eclipse 的布局预览(图形布局)上重现。
对 API 18+ 或 android:gravity 所做的任何更改是我遗漏的?
PS:我在项目和 AndroidManifest.xml 上针对 API 19
PS2:我的 TextView 是自定义的,只是为了设置一个外部 font.tff
这就是它在 API 17 上的样子-
这就是它在 API 18+ 上的样子
提前致谢!
= 更新 =
在我的 Manifest 上,我将 android:targetSdkVersion 更改为 17 而不是 19 并且问题消失了,但这是一个“技巧”,而不是解决方案,我该怎么办,因为这可能是 API 的问题?是的,我有最新版本的 API 18 和 19(今天,2014 年 1 月 30 日)。
【问题讨论】:
-
只是出于好奇,如果 4.3 和 4.4 中的文本不是居中|左,那么它在哪里?结果与非自定义文本视图相同吗?如果没有,请显示您的自定义 textview 代码和您的布局 xml。
-
您能否给我们看一张屏幕截图,看看它应该是什么样子,以及它看起来是什么样子?此外,您同时使用“alignParentLeft”和“layout_toLeftOf”似乎很奇怪——您是要对齐到特定视图还是父视图?
-
我刚刚添加了你问的ss。 @androiddeveloper,alignParentLeft 用于将我的 TextView 的左边缘调整到其“父亲”的左边缘,并 toLeftOf 将我的 textView 的右边缘与我的 SeekBar 的左边缘对齐,这样我可以避免“覆盖”如果我的文本长度足够大,可以到达我的搜索栏:)
-
@Adam,文字还在,但是好像上面没有重力属性,文字定位在自它的左上角
-
@MurilloHenrique 是的,关于对齐,我很抱歉。我错了而且很困惑(以为它是在视图的右侧对齐),那是因为我很困(在 2:22 写的)。无论如何,我认为您应该为此尝试 ui 设计器。尝试将左侧的 textView 与右侧的视图对齐。或者您也可以在 textView which 上使用 layout_centerVertical="true" 。此外,您应该尝试自定义现有的 API,即 SwitchPreference 或 CheckBoxPreference,而不是重新发明整个视图。只需自定义它们的外观...
标签: java android layout gravity