Android xml形状声明中的滑稽错误

时间:2010-12-07 17:12:22

标签: android xml user-interface

我正在创建一个用作按钮背景的形状。我正在制作一个按钮条,左边的那个按钮左边会有圆角,右边的最后一个按钮右边会有圆角。这非常简单,api文档向您展示了如何做到这一点。但是,当我使用android:topLeftRadiusandroid:bottomLeftRadius时,UI中的结果就像我放置了bottomRightRadius。另一方也是如此。似乎无论谁实现了这个交换了bottomRight和bottomLeft。我将在下面发布一段代码。

是否有一些合理的理由让我可能会失踪?或者,如果这是Android工程师的一个错误,它会在修复后保持向后兼容吗?我想他们必须制作所有新属性以保持旧的有效(leftTop而不是topLeft可能?)。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" >
        <shape>
            <solid android:color="#99000000" />
            <padding
                android:top="8dp"
                android:left="8dp"
                android:right="8dp"
                android:bottom="8dp" />
            <corners
                android:topLeftRadius="8dp"
                android:bottomRightRadius="8dp" />
        </shape>
    </item>

3 个答案:

答案 0 :(得分:8)

看起来像个错误,请参阅this issuethis question

答案 1 :(得分:4)

我似乎无法找到它,但我记得在某个地方读到有一个错误要求你先覆盖整个半径,然后放回那些你不想要半径的错误;例如:

<corners
    android:radius="8dp"
    android:topRightRadius="0dp"
    android:bottomLeftRadius="0dp"
    />

我不保证成功,但你可以尝试一下。

编辑:啊,甜甜圈似乎有正确的答案。

答案 2 :(得分:1)

<corners android:topLeftRadius="0.1dp" 
android:topRightRadius="6dp" 
android:bottomRightRadius="0.1dp" 
android:bottomLeftRadius="6px" />

这适用于宽容和右上角。根据您的要求进行调整