Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-TextView与';零';高度_Android_Textview - Fatal编程技术网

Android-TextView与';零';高度

Android-TextView与';零';高度,android,textview,Android,Textview,我想用ObjectAnimator手动设置TextView高度。 代码如下: if(condition){ height = 136; }else{ height = 0; } ObjectAnimator animator = ObjectAnimator.ofInt( mText, "height", height ).setDuration(400); animator.start(); 在某些情况下,这是可行的,但它不会将TextView高度设置

我想用ObjectAnimator手动设置TextView高度。 代码如下:

if(condition){
    height = 136;
}else{
    height = 0;
}
ObjectAnimator animator = ObjectAnimator.ofInt(
    mText,
    "height",
    height
).setDuration(400);
animator.start();
在某些情况下,这是可行的,但它不会将TextView高度设置为0,而是大约80px。
为什么?

我想您是想通过将“高度”设置为0来隐藏它?如果是这种情况,为什么不使用.setVisibility(View.GONE)?

来隐藏和显示文本视图,设置其高度并不是一种好的做法,而是执行以下操作:

 textview.setVisibility(View.GONE);

视图。已消失此视图不可见,并且不占用任何空间用于布局

视图。不可见此视图不可见,但仍会占用空间用于布局

要使其再次可见,请使用

 textview.setVisibility(View.VISIBLE);
已编辑

要使用动画隐藏视图

 ObjectAnimator anim = ObjectAnimator.ofFloat(view, "alpha", 0.0f);
 anim.addListener(new AnimatorListener() {
  ...
  @Override 
  public void onAnimationEnd(Animator animation) {
      animDrawable.stop()            
  }
  ...
 });
 anim.setDuration(300).start();

这将逐渐淡入您的视图,并通过动画将其隐藏。

如果根据其位置有其他视图,请使用setVisibility(view.INVISIBLE)。否则请使用setVisibility(View.GONE)。

如果要隐藏带有动画的
文本视图,请使用下面的代码

ViewPropertyAnimator mTextAnimator = myTextView.animate()
             .scaleY(0f)
             .setListener(new Animator.AnimatorListener() {
                public void onAnimationStart(Animator animation) {}
                public void onAnimationRepeat(Animator animation) {}
                public void onAnimationCancel(Animator animation) {}
                public void onAnimationEnd(Animator animation) {
                    myTextView.setVisibility(View.GONE);
                }
            }) 
            .setDuration(400);
mTextAnimator.start();
要使用动画显示
TextView
,请使用

mTextAnimator = myTextView.animate()
             .scaleY(1f)
             .setListener(null)
             .setDuration(400);
mTextAnimator.start();

在我的
.xml
文件中,我使用了
android:visibility=“gone”
。原来我有这个,

<TextView
    android:id="@+id/labelReachable"
    android:layout_width="wrap_content"
    android:gravity="left"
    android:textSize="15dp"
    android:layout_marginTop="10dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:text="Reachability"></TextView>
<ImageView
    android:background="@drawable/bar_dark"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>

<LinearLayout
    android:id="@+id/insertPings"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical" >
</LinearLayout>

为什么要将其设置为0?若要隐藏(并显示)文本视图。。有更好的方法吗?我是Android新手:/n不,你应该使用它的方法。查看下面我的答案。查看我的答案以隐藏带有动画的文本视图。它比你的代码简单。请参阅我的更新答案。我希望答案是完整的。谢谢,但我如何用动画设置“可见性”?现在,在动画结束时,我设置了可见性,但有一个“适合”。。。高度(使用动画)从136更改为大约80,然后立即更改为0。是否要更改此高度?我要使用动画将高度设置为零。这会隐藏视图,但仍会占用布局空间…:(请查看此链接..像另一个答案一样,这会隐藏视图,但它仍然会占用空间用于布局目的…@simone_s1994 okay更新了我的答案。我认为它将完全满足您的要求。它将使用动画隐藏,一旦隐藏,视图将不会占用任何空间。确定“隐藏方法”,但我更改了高度以使用动画移动其余内容。。
<TextView
    android:id="@+id/labelReachable"
    android:layout_width="wrap_content"
    android:gravity="left"
    android:textSize="15dp"
    android:layout_marginTop="10dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:text="Reachability"></TextView>
<ImageView
    android:background="@drawable/bar_dark"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>

<LinearLayout
    android:id="@+id/insertPings"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:orientation="vertical" >
</LinearLayout>
<TextView
    android:id="@+id/labelReachable"
    android:layout_width="wrap_content"
    android:gravity="left"
    android:textSize="15dp"
    android:layout_marginTop="10dp"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:visibility="gone"
    android:text="Reachability"></TextView>
<ImageView
    android:background="@drawable/bar_dark"
    android:layout_width="fill_parent"
    android:visibility="gone"
    android:layout_height="wrap_content"/>

<LinearLayout
    android:id="@+id/insertPings"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:gravity="center"
    android:visibility="gone"
    android:orientation="vertical" >
</LinearLayout>