【发布时间】:2011-06-16 21:30:58
【问题描述】:
在创建自定义复合控件以将状态更改从容器向下应用到所有子控件时,有谁知道适当的机制是什么?在我看来,应该有一种直接的方法来设置 ViewGroup 以将所有状态更改(按下、启用等)转发给每个孩子。
例如,如果我按照以下方式创建自定义小部件:
public class MyWidget extends RelativeLayout {
private TextView mTitleView, mValueView;
private ImageView mImageView;
public ValueButton(Context context) {
this(context, null);
}
public ValueButton(Context context, AttributeSet attrs) {
super(context, attrs);
//View setup, etc.
}
}
在许多情况下,当更改应用于整个小部件作为一个整体时,我想要切换子级的可绘制或颜色状态列表。我需要向这样的小部件添加什么,以便例如当我调用MyWidget.setEnabled() 或按下MyWidget 时,这些状态更改会向下过滤层次结构?
谢谢!
【问题讨论】: