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

如何在android中以编程方式禁用布局及其内容,android,android-linearlayout,Android,Android Linearlayout,我在RelativeLayout中有4个线性布局,我也在使用ImageView。当显示ImageView时,我想禁用4个线性布局及其内容。每个LinearLayout包含4个按钮。下面显示的是我禁用和启用这些布局的功能。有人能帮我理解为什么这不起作用吗 private void disablelayout(final LinearLayout l1,final LinearLayout l2,final LinearLayout l3,final LinearLayout l4) {

我在RelativeLayout中有4个线性布局,我也在使用ImageView。当显示ImageView时,我想禁用4个线性布局及其内容。每个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);
    }
使用setVisibility()设置不可见或消失。

如下使用:

l1.setVisibility(View.GONE);
l2.setVisibility(View.GONE);
l3.setVisibility(View.GONE);
l4.setVisibility(View.GONE);
将所有项目的“
Clickable
”属性设置为false。该方法是
setClickable(布尔)。

之后,没有人可以单击它。您还可以研究这个问题:

private void enableDisableView(视图视图,布尔启用){
view.setEnabled(已启用);
if(视图组的视图实例){
视图组组=(视图组)视图;
对于(int idx=0;idx
如果我设置此选项,线性布局将不可见。rt?但我不想使其不可见我认为禁用此选项意味着看不见。也许你正在寻找这样的东西:我不想让它不可见。版面应该是可见的。但用户不应该能够单击版面中的按钮。我尝试了这个…但我仍然可以单击按钮…我已经为版面设置了此属性。这是我问你的…是否有必要将dis设置为d版面中的所有CNTRL。真的吗困难..每个视图都有“重复父状态”属性(在可视化编辑器中也是如此)。将所有按钮和其他您想要的VIE设置为true。使用setEnabled后(false);布局。它应该可以工作。我已经为所有按钮设置了重复的父状态属性。但仍然存在相同的问题。。。
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);
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);
        }
    }
}