我想将一个按钮变灰,以便它对用户显示为禁用,但仍然会听取点击,这样我就可以向用户显示一条消息,说明该按钮不适用的原因.
我想确保Android API配置适当的标准禁用外观,而不是手动将按钮颜色设置为灰色等.最好的方法是什么?
这是一个自定义按钮,当它被禁用时,它可以显示触摸事件,并且经过测试.专门为您设计的
public class MyObservableButton extends Button
{
public MyObservableButton(Context context, AttributeSet attrs)
{
super(context, attrs);
}
private IOnClickWhenEnabledListner mListner;
public void setOnClickWhenEnabledListener(IOnClickWhenEnabledListner listener) {
mListner = listener;
}
private interface IOnClickWhenEnabledListner {
public void onClickWhenEnabled();
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (!isEnabled() && mListner != null) {
mListner.onClickWhenEnabled();
}
}
return super.onTouchEvent(event);
}
}
Run Code Online (Sandbox Code Playgroud)
这是从Android开发人员的角度来实现你想要的东西的正确方法.
没有问题,可以放弃所有android的视图,并在xml文件中使用它们,而不是源代码.
祝好运
您也可以手动将Button的背景设置为默认值,以便禁用.但是保持启用按钮并以正常方式处理点击事件
这样的事情应该这样做:
mBtn.setBackgroundResource(android.R.drawable.btn_default_normal_disabled);
Run Code Online (Sandbox Code Playgroud)
我不是 Android 专家,所以可能有更好的方法,但是禁用按钮并覆盖一个可以捕获事件的透明视图怎么样?
您可以让视图始终位于按钮下方,这样您只需要更改 z-index,或者在需要时动态创建它。
归档时间: |
|
查看次数: |
5112 次 |
最近记录: |