Mur*_*ira 5 java layout android gravity
我的应用程序上有一些TextViews,我不知道为什么但是该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" />
Run Code Online (Sandbox Code Playgroud)
这个代码应该采用这个代码的边缘TextView
并将它对齐到顶部和底部并将它放在左边SeekBar
,这是有效的,但是TextView
变大了,所以android:gravity
我将文本居中到中心并从中自取.它工作,但我不知道为什么,文本不在运行android 4.3和4.4的设备的中心左侧.此问题可以在真实设备上以及Eclipse的布局预览(图形布局)上重现.
对API 18+或android:gravity
我遗漏的内容进行了哪些更改?
PS:我的目标是项目和AndroidManifest.xml上的API 19
PS2:我的TextView是自定义的,只是为了设置外部font.tff
这就是它在API 17上的样子 -
这就是它在API 18+上的样子
提前致谢!
= UPTADATE =
在我的Manifest上,我将其更改android:targetSdkVersion
为17而不是19并且问题消失了,但这是一个"技巧",而不是解决方案,我能做什么,因为它可能是来自API的问题?是的,我有最新版本的API 18和19(今天,01/30/2014).
Tom*_*mty 12
这似乎是API 18+中的已知问题:
https://code.google.com/p/android/issues/detail?id=59368 https://code.google.com/p/android/issues/detail?id=59700
当TextView是可滚动容器(例如ListView)的一部分时,问题似乎发生,使得视图由于某种原因忽略了垂直引力(一些消息来源暗示这与TextView是RelativeLayout的子节点有关,尽管它已经被我的经验是,即使不涉及这样的布局,也会发生这种情况).
一种可能的解决方法(虽然不是特别优雅),将TextView包装在LinearLayout中.然后,您可以在TextView上使用"layout_gravity"将其置于LinearLayout内部,而不是依赖于"gravity"(只需确保wrap_content,以便文本本身正确居中).
例如,在您的示例中:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignBottom="@+id/seekbar"
android:layout_alignParentLeft="true"
android:layout_alignTop="@+id/seekbar"
android:layout_toLeftOf="@+id/seekbar"
android:layout_marginLeft="@dimen/margin_tiny_double" >
<com.package.custom.CustomTextFont
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="left"
android:paddingRight="@dimen/margin_tiny"
android:text="@string/text1"
android:textColor="@color/black"
android:textSize="@dimen/size_text_normal" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
此方法的缺点是在视图层次结构中添加了不必要的级别,但它目前似乎是解决此问题的唯一方法(除了恢复到早期的API级别).
另请参阅类似的问题: Android sdk 18 TextView重力不能垂直工作
归档时间: |
|
查看次数: |
2362 次 |
最近记录: |