【问题标题】:Android sdk 18 TextView gravity doesn't work verticallyAndroid sdk 18 TextView 重力不能垂直工作
【发布时间】:2016-01-09 00:16:46
【问题描述】:

SDK 18 有问题。 我的文本视图的重力不能垂直工作。但它适用于 sdk17。

图片和代码:

header_of_listView.xml:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/RelativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >

        <ImageView
            android:id="@+id/iv_bg"
            android:layout_width="wrap_content"
            android:layout_height="@dimen/entete.size.h"
            android:layout_alignParentLeft="true"
            android:layout_alignParentRight="true"
            android:layout_centerHorizontal="true"
            android:contentDescription="@string/blank"
            android:scaleType="fitXY"
            android:src="@drawable/cellule_flecher_mise_en_valeur" />

        <TextView
            android:id="@+id/tv_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/iv_bg"
            android:layout_alignLeft="@id/iv_bg"
            android:layout_alignRight="@id/iv_bg"
            android:layout_alignTop="@id/iv_bg"
            android:layout_marginBottom="6dp"
            android:gravity="center"
            android:text="@string/a_remplacer"
            android:textColor="@color/tableviewText"
            android:textSize="18sp"
            android:textStyle="bold" 
            android:layout_centerHorizontal="true"/>

    </RelativeLayout>

AndroidManifest.xml

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

AndroidManifest.xml

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

textview 为黑色背景 android:background="#000000"

如果有人有想法。 我尝试用 match_parent 更改 wrap_content。

唯一有效的是 android:layout_height="@dimen/entete.size.h" 在 TextView 上,但边距不适用。 目前我将项目留给 SDK 17。

【问题讨论】:

  • 删除 android:targetSdkVersion="18" 并运行....
  • 它的工作。但我有警告“标签应指定目标 API 级别(最高验证版本;在更高版本上运行时,可能会启用兼容性行为)与 android:targetSdkVersion="?" "
  • 它不会因为你指定了 min sdk 而烦恼......
  • 我有完全相同的错误。您找到任何解决方案了吗?而不是将 targetSdk 设置为 17
  • heigth 的 match_parent 也没有效果,还是被包裹了

标签: java android textview


【解决方案1】:

问题是 RelativLayout 作为列表视图项的根布局。如果您在 RelativeLayout 周围放置一个 LinearLayout,它也适用于 targetSdk = 19。 GridView 也会出现同样的问题。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent">

   ... your layout like before

</LinearLayout>

这不是一个很好的解决方法 - 但我猜比设置 targetSdk = 17 更好。

【讨论】:

  • 我遇到了与原始海报相同的问题,但在 RecyclerView 内的 CardView 内有 TextView。将整个 CardView 布局包装在 match_parent LinearLayout 中修复了它。非常感谢!
  • 我错了,这并没有为我解决问题。卡片开始和父母一样宽,这不是我想要的。我不得不在 CardView 元素中包装一个无用的 LinearLayout 中的 RelativeLayouts。
【解决方案2】:

我遇到了同样的问题,它只发生在 Android 19 中。我的目标是 api 23,它工作正常。

我发现给 textview 一个高度解决了这个问题

原来是这样的:

         <TextView
            android:id="@+id/tv_message"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/iv_bg"
            android:layout_alignLeft="@id/iv_bg"
            android:layout_alignRight="@id/iv_bg"
            android:layout_alignTop="@id/iv_bg"
            android:layout_marginBottom="6dp"
            android:gravity="center"
            android:text="@string/a_remplacer"
            android:textColor="@color/tableviewText"
            android:textSize="18sp"
            android:textStyle="bold" 
            android:layout_centerHorizontal="true"/>

我是这样设计的:

         <TextView
            android:id="@+id/tv_message"
            android:layout_width="wrap_content"
            android:layout_height="40dp"            <!-- this is the key-->      
            android:layout_alignBottom="@id/iv_bg"
            android:layout_alignLeft="@id/iv_bg"
            android:layout_alignRight="@id/iv_bg"
            android:layout_alignTop="@id/iv_bg"
            android:layout_marginBottom="6dp"
            android:gravity="center"
            android:text="@string/a_remplacer"
            android:textColor="@color/tableviewText"
            android:textSize="18sp"
            android:textStyle="bold" 
            android:layout_centerHorizontal="true"/>

由于性能问题,我不想添加另一个线性布局。

【讨论】:

    【解决方案3】:

    删除android:targetSdkVersion="18" 并运行。

    【讨论】:

    • 我正在失去平板电脑的兼容性
    • 这太疯狂了......对不起,但这个答案太错误了,不应该被称为答案!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-30
    相关资源
    最近更新 更多