如何在android中以编程方式禁用布局及其内容

时间:2011-06-10 13:24:06

标签: android android-linearlayout

我在RelativeLayout中有4个LinearLayout,我也在使用ImageView。显示ImageView时,我想禁用4个LinearLayouts及其内容。每个LinearLayout包含4个按钮。下面显示的是禁用和启用这些布局的功能。有人能帮助我理解为什么这不起作用吗?

private void disablelayout(final LinearLayout l1,final LinearLayout l2,final LinearLayout l3,final LinearLayout l4)
    {
        l1.setEnabled(false);
        l2.setEnabled(false);
        l3.setEnabled(false);
        l4.setEnabled(false);

    }
    private void enablelayout(final LinearLayout l1,final LinearLayout l2,final LinearLayout l3,final LinearLayout l4)
    {
        l1.postDelayed(new Runnable(){             
             @Override             
             public void run() {                 
                 l1.setEnabled(true); 
                 l2.setEnabled(true); 
                 l3.setEnabled(true); 
                 l4.setEnabled(true); 
             }         
             }, 3000);
    }

5 个答案:

答案 0 :(得分:2)

private void enableDisableView(View view, boolean enabled) {
    view.setEnabled(enabled);

    if ( view instanceof ViewGroup ) {
        ViewGroup group = (ViewGroup)view;

        for ( int idx = 0 ; idx < group.getChildCount() ; idx++ ) {
            enableDisableView(group.getChildAt(idx), enabled);
        }
    }
}

答案 1 :(得分:0)

将setVisibility()用于INVISIBLE或GONE。

答案 2 :(得分:0)

像这样使用:

l1.setVisibility(View.GONE);
l2.setVisibility(View.GONE);
l3.setVisibility(View.GONE);
l4.setVisibility(View.GONE);

答案 3 :(得分:0)

将所有项目的“可点击”属性设置为false。方法是setClickable(boolean)。之后没有人点击它。您也可以查看这个问题:How to disable an Android button

答案 4 :(得分:0)

Use can use this for hide the whole layout

l1.setVisibility(View.GONE);
l2.setVisibility(View.GONE);
l3.setVisibility(View.GONE);
l4.setVisibility(View.GONE);

whenever you want to display particular layout then you can 

l1.setVisibility(View.VISIBLE);