12

我有一个线性布局,里面还有几个按钮。我想让它在触摸时可见,再次触摸时不可见。

我怎样才能做到?

4

4 回答 4

30
LinearLayout one = (LinearLayout) findViewById(R.id.one);
one.setVisibility(View.GONE);

我建议您在 onclick 事件中使用 GONE 而不是 INVISIBLE,因为 View.GONE布局的位置将不可见,并且应用程序中不会出现未使用的空间,这与会View.INVISIBLE留下用于布局的间隙不同

于 2013-11-06T07:27:09.427 回答
3

在您的代码上添加一个布尔值

boolean flag = false;

然后在 xml 的线性布局中添加android:clickable = true

然后使用此代码作为参考

your_linear_layout = new OnClickListener(){
    @Override
    public void onClick(View v) {
        if (flag){
        // means true
        your_linear_layout.setVisibility(View.INVISIBLE);
        flag = false; 
        }
        else{
        your_linear_layout.setVisibility(View.VISIBLE) 
        flag = true;
        }

    }

};   

还没有尝试过,但这应该可以工作..

干杯

于 2013-01-14T06:21:33.263 回答
2

setOnTouchListener添加到 linearLayout 获取触摸事件为:

linearLayout.setOnTouchListener(new OnTouchListener(){
  public boolean onTouch(View v, MotionEvent event){

     if (event.getAction() == MotionEvent.ACTION_DOWN) {

         // show-hide view here

        return true;
      }

     if (event.getAction() == MotionEvent.ACTION_UP) {

         // show-hide view here

        return true;
      }

   return false;
  }
});

用于使视图可见使用yourview.setVisibility(View.VISIBLE)和不可见使用yourview.setVisibility(View.INVISIBLE)

于 2013-01-14T05:43:41.070 回答
0

你应该用户

无形的 -:mButton.setVisibility(View.INVISIBLE);

可见-: mButton.setVisibility(View.VISIBLE);

将此代码放入按钮的 onclick 侦听器中,并检查是否条件。

于 2013-01-14T05:40:40.623 回答