0

我有一个菜单 imageview,当点击它时,我的 linearlayout(line2) 出现,但它应该在下次点击菜单 imageview 时再次消失

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
line1=(LinearLayout) findViewById(R.id.ll1);
         line2=(LinearLayout)findViewById(R.id.ll2);

         menu=(ImageView)findViewById(R.id.menu);

         menu.setOnClickListener(new OnClickListener() {

       public void onClick(View v) {
           menu.setVisibility(View.VISIBLE);
         // TODO Auto-generated method stub
       line1.setVisibility(View.VISIBLE);
       line2.setVisibility(View.VISIBLE);
         }
     });
4

2 回答 2

1

你可以试试 -

       //line2.setVisibility(View.VISIBLE);
       if(line2.getVisibility() == View.VISIBLE)
       {
           line2.setVisibility(View.GONE);
       }
       else
       {
           line2.setVisibility(View.VISIBLE);
       }
于 2013-01-30T06:35:31.797 回答
0

每次按下按钮并切换时,您都可以使用 if/else 语句检查当前状态。如果您不打算将其设置为 GONE,则不一定需要检查可见性是否已消失,以便您可以删除该条件。

GONE 和 INVISIBLE 之间的区别在于布局对消失的反应就好像它甚至不存在一样,元素不再导致任何位移。

更改 line2.setVisibility(View.VISIBLE); 到

   if (line2.getVisibility() == View.GONE || line2.getVisibility() == View.INVISIBLE ) {
       line2.setVisibility(View.VISIBLE); } 
   else { 
       line2.setVisibility(View.GONE); // Set it to View.INVISIBLE if thats your goal.
   }
于 2013-01-30T06:32:12.020 回答