【问题标题】:How to change which layout is showing如何更改显示的布局
【发布时间】:2013-04-25 11:16:51
【问题描述】:

我正在制作一个应用程序,其中有一个微调器,您可以在其中选择 4 个选项中的 1 个。我想要它,这样如果您单击选项 a 一个图像,则会在下面绘制一个布局,并且如果您选择选项 b 会绘制一个不同的布局,我已经尝试将布局设置为不可见并使其在您选择一个主题时布局变得可见但问题是当我需要该布局消失时它不会

这是我的代码,当我从微调器中选择一个选项时,此代码只会显示两者

 if (pos == 1){

            cooldown.setVisibility(0);
            warmup.setVisibility(1);

        }else if (pos == 2){
            cooldown.setVisibility(1);
            warmup.setVisibility(0);
        }

我认为 setvisibility 是一个死胡同

【问题讨论】:

  • 你只是在换一张图片吗?
  • 您可能应该为微调器中的每个选项使用一个活动。
  • 或者使用一个带有 4 个片段的活动并使用 LayoutInflater

标签: java android android-layout spinner


【解决方案1】:

setVisibility() 的参数不应硬编码为 0 或 1。有常量。 VISIBLE 是 0,INVISIBLE 是 4,GONE 是 8。传入 1 没有任何作用。 See here.

在您的情况下,您应该使用VISIBLEGONE,因为INVISIBLE 仍会占用布局空间。

【讨论】:

    【解决方案2】:

    这些不是visibility 的正确常量。试试吧

     if (pos == 1){
    
            cooldown.setVisibility(View.VISIBLE);
            warmup.setVisibility(View.INVISIBLE);
    
        }else if (pos == 2){
            cooldown.setVisibility(View.INVISIBLE);
            warmup.setVisibility(View.VISIBLE);
        }
    

    Visibility

    如果这些是单个图像,那么这就是您想要的方式。如果它们是完整的Layouts 和许多Views,那么您可能会考虑使用Fragments

    【讨论】:

      【解决方案3】:

      我认为你应该使用 VISIBLE, INVISIBLE, GONE 代替数字

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-20
        • 1970-01-01
        • 1970-01-01
        • 2016-08-06
        相关资源
        最近更新 更多