如何通过单击android中的按钮来打开和关闭视图

时间:2015-10-17 20:18:41

标签: android textview click

我有一些buttonstextview(文字视图位于按钮下方)。我想点击textview来显示button。这意味着当我仍然没有点击button时,所以textview应该关闭(没有隐藏),而不使用visibility属性。如下图所示:

the docs

你有什么建议吗?

3 个答案:

答案 0 :(得分:2)

一个实现是为每个按钮创建一个翻译动画供其他人使用(这样就可以为各个文本视图创建空间) 所以你按下button1,其他所有人都会向下滑动。 例如,对于button1:
 

private TranslateAnimation translateDown= new TranslateAnimation(0,0,0,200);
translateDown.setDuration(300);
translateDown.setFillAfter(true);


private TranslateAnimation translateUp= new TranslateAnimation(0,0,200,0);
translateDown.setDuration(300);
translateDown.setFillAfter(true);

button1.onClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            if(textView1.isHidden(){
                button2.startAnimation(translateDown);
                button3.startAnimation(translateDown);
                button4.startAnimation(translateDown);
               textView1.show();
            }
            else{
                textView1.hide();
                button2.startAnimation(translateUp);
                button3.startAnimation(translateUp);
                button4.startAnimation(translateUp);                   
             }


        });

private TranslateAnimation translateDown= new TranslateAnimation(0,0,0,200); translateDown.setDuration(300); translateDown.setFillAfter(true); private TranslateAnimation translateUp= new TranslateAnimation(0,0,200,0); translateDown.setDuration(300); translateDown.setFillAfter(true); button1.onClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { if(textView1.isHidden(){ button2.startAnimation(translateDown); button3.startAnimation(translateDown); button4.startAnimation(translateDown); textView1.show(); } else{ textView1.hide(); button2.startAnimation(translateUp); button3.startAnimation(translateUp); button4.startAnimation(translateUp); } }); 所有情况都可以使用相同的翻译(必须创建相同数量的空间)

答案 1 :(得分:1)

嗯。如果我理解正确,你需要这样的东西:

   public void onClick(View cview) throws IOException {
        switch (cview.getId()) {
            case R.id.button1:
                //hide
                textview.setVisibility(View.GONE);
                break;
            case R.id.button2:
                //show
                textview.setVisibility(View.VISIBLE);
                break;
        }
   }

答案 2 :(得分:0)

正确的方法是使用Visibility属性。

但是如果要折叠内容,只需在onClick事件中将TextView的height属性设置为0即可。这可以帮到你。

    TextView test = (TextView)findViewById(R.id.myTextView);
    test.setHeight(0);