假设您有衬砌布局,上面有很多子类,如文本视图和复选框以及...。我如何在线性布局的所有子级上设置诸如setAlpha或setClickable或...之类的属性。我可以通过找到每个具有findViewById的孩子然后设置属性来做到这一点,但是我在linerlayout中有很多孩子

最佳答案

递归地迭代所有子项,检查视图是否为ViewGroup的实例(即包含其他子项):

public void setAlpha(View view, float alpha){
    if (view instanceof ViewGroup){
        ViewGroup viewgroup = (ViewGroup)view;
        int count = viewgroup.getChildCount();
        for (int i=0; i < count; i++){
            View viewNext = viewgroup.getChildAt(i);
            setAlpha(viewNext, alpha);
        }
    }
    else {
        view.setAlpha(alpha);
    }
}


并将其应用于您的布局:

setAlpha(findViewById(R.id.your_layout), alpha);

关于android - 如何在 subview 组android上设置属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23083165/

10-13 05:09