我有一些buttons
和textview
(文字视图位于按钮下方)。我想点击textview
来显示button
。这意味着当我仍然没有点击button
时,所以textview
应该关闭(没有隐藏),而不使用visibility属性。如下图所示:
答案 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);