Android L将形状视为可绘制背景

ade*_*dek 12 android android-drawable android-5.0-lollipop

我在Nexus 5上测试Android L预览.我的应用程序出了问题.

我有一些背景设置的TextViews:

android:background="@drawable/rounded_textview"
Run Code Online (Sandbox Code Playgroud)

而"rounded_textview"就是形状.它在<= API19下工作得很好.

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="3dp">
<solid android:color="#999999"/>
<corners
 android:bottomRightRadius="2dp"
 android:bottomLeftRadius="2dp"
 android:topLeftRadius="2dp"
 android:topRightRadius="2dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

在Android L开发人员预览背景被忽略.我的所有TextView都是透明的.知道我做错了什么吗?

小智 36

我发现将形状包裹在选择器和项目标签中使其工作

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">

            <solid android:color="@color/gray" />

            <corners
                android:bottomLeftRadius="3dp"
                android:topRightRadius="3dp"
                android:topLeftRadius="3dp"
                android:bottomRightRadius="3dp" />

        </shape>
    </item>
</selector>
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的解决方法,但我仍然希望Google会在Android L官方发布之前修复此问题.有没有人在官方的Android bug追踪器上报告过这个? (2认同)
  • 如果你在所有角落都有相同的半径,你可以简单地使用android:radius ="3dp".它适用于Android L. (2认同)