2012-02-22 78 views
0

我需要这个错过按钮在初始屏幕上移动,然后在切换按钮切换时出现,重新切换时再次移动。设置按钮最初是否结束?

持续atm的问题是,按钮没有在最初的屏幕上最初消失,我必须按下切换按钮两次,它会消失。

下面的代码:

toggle = (ToggleButton) findViewById(R.id.bRedGreen); 
    toggle.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      pluskugle = (Button) findViewById(R.id.bBallhole); 
      minuskugle = (Button) findViewById(R.id.bBallhole); 

      pluskegle = (Button) findViewById(R.id.bKegle); 
      minuskegle = (Button) findViewById(R.id.bKegle); 

      plusmidkegle = (Button) findViewById(R.id.bKeglemid); 
      minusmidkegle = (Button) findViewById(R.id.bKeglemid); 

      bottomlayout = (LinearLayout) findViewById(R.id.bottomlayout); 

      miss = (Button) findViewById(R.id.bMiss); 

     if(toggle.isChecked()) 
     { 
      minuskugle.setBackgroundResource(R.drawable.redballinhole); 
      minuskegle.setBackgroundResource(R.drawable.redkegle); 
      minusmidkegle.setBackgroundResource(R.drawable.midkegleminus); 
      miss.setBackgroundResource(R.drawable.missbutton); 

      miss.setVisibility(View.VISIBLE); 

     } 

     else 
     { 
      pluskugle.setBackgroundResource(R.drawable.whiteballinhole); 
      pluskegle.setBackgroundResource(R.drawable.kegleb); 
      plusmidkegle.setBackgroundResource(R.drawable.midkegleplus); 
      miss.setVisibility(View.GONE); 

     } 

     } 

    }); 
} 
+0

如何在layout.xml中定义按钮?机器人:能见度=“水涨船高”? – Woodsy 2012-02-22 17:53:35

回答

1

你看到的行为是两件事的结果:

- 按钮最初可见的原因是您的XML中没有android:visibility =“gone”,并且将其设置为不可见的代码未被触发,因为尚未发生点击。

- 您必须点击切换按钮两次以将其设置为不可见的原因:第一次点击将切换从未选中切换为选中,以便代码将按钮(已经可见)设置为可见。第二次点击是onClick第一次触发并且没有选中切换按钮。这就是你实际看到按钮不可见的时候。

要解决,只需添加“机器人:知名度=” GONE”作为您的布局XML的小姐按钮属性

+0

这样一个简单的解决方案,谢谢指出:) – 2012-02-22 18:24:59

1

的XML中bMiss

添加android:visibility:"gone"

2

您可以设置使用Android布局的影响:可视性= “水涨船高”

1

,我建议您将所有的findViewById方法从拨动的onClick方法您的onCreate或初始化方法,然后在你的:

小姐=(按钮)findViewById(R.id.bMiss);

放:

miss.setVisibility(View.INVISIBLE);

miss.setVisibility(View.GONE);