Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
API 25上的Android ToggleButton绘图故障_Android_Android Custom View_Android Togglebutton - Fatal编程技术网

API 25上的Android ToggleButton绘图故障

API 25上的Android ToggleButton绘图故障,android,android-custom-view,android-togglebutton,Android,Android Custom View,Android Togglebutton,我面临着一个奇怪的问题,我有一个自定义视图(带有自定义绘图)覆盖了ToggleButton,出于某种原因,覆盖onDraw和draw方法并不能阻止父类绘制它的一部分,这使我的视图看起来像是有故障的 这个bug似乎只在API级别25的物理设备或模拟器上发生 将以下代码用于“我的自定义切换”按钮: public class CustomToggleButton extends ToggleButton { @TargetApi(Build.VERSION_CODES.LOLLIPOP)

我面临着一个奇怪的问题,我有一个自定义视图(带有自定义绘图)覆盖了
ToggleButton
,出于某种原因,覆盖
onDraw
draw
方法并不能阻止父类绘制它的一部分,这使我的视图看起来像是有故障的

这个bug似乎只在API级别25的物理设备或模拟器上发生

将以下代码用于“我的自定义切换”按钮:

public class CustomToggleButton extends ToggleButton {
    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public CustomToggleButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
    }

    public CustomToggleButton(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public CustomToggleButton(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomToggleButton(Context context) {
        super(context);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        //nope, not drawing anything
    }

    @Override
    public void draw(Canvas canvas) {
        //nope, not drawing anything
    }
}
以及以下简单的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top|center_horizontal"
        android:text="Bottom left: buggy custom ToggleButton.\nBottom right: regular ToggleButton." />

    <test.com.togglebuttonbug.CustomToggleButton
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_gravity="bottom|left"
        android:textOff="B"
        android:textOn="A" />

    <ToggleButton
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:layout_gravity="bottom|right"
        android:textOff="B"
        android:textOn="A" />
</FrameLayout>

结果如下:

如果你仔细看屏幕截图,你可以看到手机在右边,在左下角,你可以看到一张灰色的图,而不是像空画法那样什么都没有。 有人知道是什么导致了这一切吗?这是安卓N上的一个bug吗