0

我的 ListView 项目有两个 TextView。我想使用 XML一次显示其中一个。我不想以编程方式执行此操作。怎么做?

例如:当 TextView A 有文字时,TextView B 消失。当 TextView A 为空时,出现 TextView B。

在此处输入图像描述

我的代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/groupNameTextView"
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:text="TextView"
        android:textSize="20dip"
        android:textColor="@color/ForestGreen"
        />

    <TextView
        android:id="@+id/topRatedPlaceNameTextView"
        android:layout_width="wrap_content"
        android:layout_height="50dip"
        android:text="TextView"
        android:textSize="20dip" 
        android:textColor="@color/Azure"
        />

</LinearLayout>
4

3 回答 3

4

抱歉,你不能用 xml 来做到这一点,通过在你getView()的 List 的适配器中以编程方式检查,比如

if(textview1.getText().toString.length()>0)
     textview2.setVisibilty(View.GONE);
else
     textview1.setVisibilty(View.GONE);
于 2012-06-13T07:13:26.483 回答
1

TextView A 有一个文本,然后在 TextView B 中设置 setVisibility(View.VISIBLE) 或 setVisibility(View.VGONE),对于 TextView B 也是如此。您在 CustomAdapter 类的 getView 方法中执行此操作。

谢谢

于 2012-06-13T07:15:44.477 回答
1

你会同时用文字显示它们吗?如果没有,并且您没有样式差异(文本大小/颜色),您可以只使用单个文本视图吗?

否则,如果 A 和 B 具有不同的大小/颜色/字体/其他,并且假设它们永远不会同时具有文本,那么像您一样使用 wrap_content 应该确保 A 在没有文本时获得宽度为 0,并且B 将占用所有空间。否则,如果 B 没有文本,则 A 将占用其内容所需的空间。

于 2012-06-13T07:22:11.587 回答