【发布时间】:2021-02-17 21:49:28
【问题描述】:
我在自定义视图上设置android:enabled="false",但它似乎对isEnabled() 属性没有任何影响。
这是一个简单的测试用例:
public class TestView extends View {
public TestView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint p = new Paint();
p.setTextAlign(Align.CENTER);
p.setTextSize(ViewUtils.dpToPx(this, 10));
canvas.drawText("Enabled = " + (isEnabled() ? "true" : "false"),
getWidth() / 2,
getHeight() / 2,
p);
}
}
以及对应的XML:
<com.example.TestView
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@android:color/darker_gray"
android:enabled="false"
android:layout_width="100dp"
android:layout_height="100dp"/>
输出视图如下所示:
谁能解释一下原因?
【问题讨论】:
-
android:enabled 在文档中未作为视图属性引用
-
啊,你是对的。将其发布为答案,我会接受。