如果没有来自字符串的文本,则删除TextView空间 - Android

时间:2013-07-21 12:55:45

标签: android listview layout textview

是否可以这样,如果没有为TextView提供文本,布局中textView占用的区域将被删除,因此没有空白区域,文本应该是这样,所以它可以被其他东西使用。

enter image description here

在这里您可以看到信息将在“2013年9月17日”之间的差距但是如果我想删除该空间,那么布局看起来好多了但仍然可以将TextView用于其他部分作为布局如何完成。您在上面看到的布局是ListView的一部分,因此如果我刚删除了TextView,如果日期部分下面有信息则不会显示。该信息是从互联网上托管的XML文件接收的。对不起如果我解释得非常糟糕。

在线托管XML文件:

<games_list>
<game>
<id>1</id>
<title>Grand Theft Auto 5</title>
<date1>17th September 2013</date1>
<date2/>
<date3/>
<platforms>360, PS3</platforms>
<thumb_url>
http://launchpadsoftware.webs.com/ReleaseDates%20Web%20Data/gta5thumb.jpg
</thumb_url>
</game>
<game>
<id>2</id>
<title>Grand Theft Auto 5</title>
<date1>17th September 2013</date1>
<date2/>
<date3/>
<platforms>360, PS3</platforms>
<thumb_url>
http://api.androidhive.info/music/images/eminem.png
</thumb_url>
</game>
</games_list>

list_row.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_card"
android:orientation="horizontal"
android:padding="5dip" >

<!--  ListRow Left sied Thumbnail image -->
<ImageView
    android:id="@+id/list_image"
    android:layout_width="50dip"
    android:layout_height="50dip"
    android:src="@drawable/gta5thumb"
    android:padding="3dip"
    android:background="@drawable/image_bg"
    android:layout_centerVertical="true"/>





<!-- Title Of Song-->
<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@id/list_image"
    android:layout_toRightOf="@id/list_image"
    android:text="Grand Theft Auto 5"
    android:textColor="#040404"
    android:textSize="18sp"
    android:layout_marginLeft="4dp"
    android:textStyle="bold"/>

<!-- Artist Name -->
<TextView
    android:id="@+id/date1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/title"
    android:textColor="#343434"
    android:textSize="14sp"
    android:layout_marginTop="1dip"
    android:layout_toRightOf="@id/list_image"
    android:layout_marginLeft="4dp"
    android:text="17th September 2013" />
<TextView
    android:id="@+id/date2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/date1"
    android:textColor="#343434"
    android:textSize="14sp"
    android:layout_marginTop="1dip"
    android:visibility="visible"
    android:layout_marginLeft="4dp"
    android:layout_toRightOf="@id/list_image"
    android:text="17th September 2013" />
<TextView
    android:id="@+id/date3"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#343434"
    android:textSize="14sp"
    android:layout_marginLeft="4dp"
    android:text="17th September 2013"
    android:layout_below="@+id/date2"
    android:layout_toRightOf="@+id/list_image"/>

<!-- Rightend Duration -->
<TextView
    android:id="@+id/platforms"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@id/title"
    android:gravity="right"
    android:text="360, PS3"
    android:layout_marginRight="3dip"
    android:textSize="12sp"
    android:textColor="#10bcc9"
    android:textStyle="bold"/>

 <!-- Rightend Arrow -->    
 <ImageView android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/arrow"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"/>

</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

在自定义列表适配器中,您应该隐藏没有文本的文本视图

textview.setVisibility(View.GONE);

并在xml中你应该使用

机器人:layout_centerVertical = “真”

用于包含文字的文字视图。

答案 1 :(得分:0)

我想你会动态地做,所以你可以在代码中完成它,只需将可见性设置为

textView.setVisible(View.GONE);