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