2011-10-11 64 views
4

我有一個TextView,仍然佔用空間時沒有文字顯示。這隻發生在OS 1.6上。當我的應用程序在2.2上運行時,TextView的高度會崩潰,因此它不佔用任何空間。是否有一些屬性,我可以在TextView中設置,使其在沒有文本設置時摺疊或消失?這是我的xml代碼。Android:TextView佔用空間沒有文字

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
    android:layout_marginTop="3dp" 
    android:layout_marginRight="3dp" 
    android:background="#ff737373" 
    android:padding="3dp" 
    android:minWidth="64dp" > 
    <ImageView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:tag="tabImage"></ImageView> 
    <TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textSize="16sp" 
    android:tag="tabCaption" 
    android:textColor="#ffd9d9d9" /> 
</LinearLayout> 

回答

4

如果你想使一個TextView 消失如果它的文本是null然後用android:visibility或編程使用textview.setVisibility(View.INVISIBLE);textview.setVisibility(View.GONE);

+0

但是,這使它永遠不可見或消失。我希望textview只在沒有設置爲任何文本時纔會消失。 – AndroidDev

+0

因此,你不能測試textview是否有文字? –

+4

但'View.INVISIBLE'和'View.GONE'有很大的不同。 –

0
textview.setVisibility(View.INVISIBLE); 
textview.setHeight(0); 
0

你問什麼,你必須使用TextWatcher,然後在文本爲空,只是讓TextView的消失:

​​

,你想改變文本中的任何時候,只是在您設置新文本之前使用your_text_view.setVisibility(View.VISIBLE);,並且如果新文本將爲空,它將不會顯示,因爲在您注意到之前它將消失,並且在它已經可見的情況下,此行不會使任何傷害或感情。

只要確保將TextView聲明爲一般變量即可在TextWatcher中使用它。

0

只是爲了給出更完整的答案。每當它通過TextChangedListener

改變了我會簡單地使用

.addTextChangedListener(new TextWatcher() { 
      @Override 
      public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

      } 

      @Override 
      public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
       if(charSequence.length()>0) 
        textView.setVisibility(View.VISIBLE); 
       else textView.setVisibility(View.INVISIBLE); 
      } 

      @Override 
      public void afterTextChanged(Editable editable) { 

      } 
     }); 

您可以通過檢查正在顯示的內容的文本給TextView的AutoCollapse能力,現在有你正在尋找的功能。 我沒有遇到很多事情在android UI中沒有一個可行的更改偵聽器,這適用於大多數問題添加功能的意見。