Samsung设备上缺少Android TextView文本

时间:2015-07-30 05:13:16

标签: android textview

我在Play商店中有一个应用程序。我的一些用户报告说他们看不到标签。问题似乎只发生在Android 4.1及更早版本的三星设备上。我无法在模拟器上重复这个问题。有没有人遇到过这样的事情?

enter image description here

TextViews显示为黑框。这些是普通的文本视图。

<TextView
    android:id="@+id/text_box"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:background="@drawable/phone_list_row_border"
    android:gravity="center_vertical"
    android:maxLines="1"
    android:text="\tBla bla bla"
    android:textColor="@color/black"
    android:textSize="@dimen/list_row_text_size"/>

<TextView
    android:id="@+id/text_eksi"
    style="@style/animating_button_labels"
    android:layout_gravity="center"
    android:layout_marginTop="-10dp"
    android:gravity="center"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:text="@string/eksi_sozluk"
    android:textAppearance="?android:attr/textAppearanceLarge"/>

我发现this问题,但这似乎巧合地解决了这个问题。我被卡住了,因为我不能在我的任何设备上重复这个问题。我需要某种提示来重复错误或找到原因。

感谢。

编辑: phone_list_row_border.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle"
       android:thickness="1dp">

    <stroke
        android:width="2dp"
        android:color="#44aa77"/>

    <corners android:radius="10dp"/>

    <padding
        android:bottom="5dp"
        android:left="10dp"
        android:right="10dp"
        android:top="5dp"/>
</shape>

其他人的风格也很抽象。它的xml在这里:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="-2dp"
        android:left="-2dp"
        android:right="-2dp"
        android:top="1dp">
        <shape android:shape="rectangle">
            <stroke
                android:width="1dp"
                android:color="@color/black"/>
        </shape>
    </item>
</layer-list>

2 个答案:

答案 0 :(得分:5)

  

问题似乎只发生在Android版本的三星设备上   4.1及更早版本。

是的,这是一些三星,LG和HTC设备的已知问题。我有一个具有良好用户群的应用程序,我自己也经历过这个问题。

  

我被困住了,因为我不能在我的任何设备上重复这个问题。

由于您没有提到您测试过的设备并且无法重现,我不得不假设它们不是那些有问题的特定设备。

这是风格的一个小问题,其中某些特定制造商在某些特定Android版本上运行的某些特定设备已知。

我自己在运行版本4.1,4.2或4.3的三星,LG和HTC等制造商的某些Android设备上遇到了这个问题。直到现在,从未在Lollipop或Kitkat上看过这个。

解决方案

足够说话,现在让我们去解决。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle"
       android:thickness="1dp">

    <stroke
        android:width="2dp"
        android:color="#44aa77"/>

    <corners android:radius="10dp"/>

    <padding
        android:bottom="5dp"
        android:left="10dp"
        android:right="10dp"
        android:top="5dp"/>
</shape>

这是你的形状的xml,对吗?一切都是正确的,除了你没有提供任何形状背景的事实。

如果您不提供任何背景,则默认为黑色。

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
           android:shape="rectangle"
           android:thickness="1dp">

        <stroke
            android:width="2dp"
            android:color="#44aa77"/>

        <corners android:radius="10dp"/>

        <padding
            android:bottom="5dp"
            android:left="10dp"
            android:right="10dp"
            android:top="5dp"/>

    <solid android:color="#ffffff" />
    </shape>

在形状中添加纯色可以解决这些特定设备中的问题。

测试

我有这样一个设备,它知道展示这个奇怪的问题,我测试它,它似乎工作绝对正常。你应该永远不会在更高版本的Android上出现这个问题,而且大多数情况下从来没有现货Android。

希望它对你有所帮助。

答案 1 :(得分:4)

某些Android版本存在问题,但未正确解释@android:color/transparent。可能会在某些点设置为默认颜色。

尝试通过手动设置颜色来解决此问题。

E.g。将此行添加到形状中以更改纯色。

<solid android:color="#00ffffff" />