在Android中,如何使用相对布局,在另一个视图下显示一个视图(例如textview),但仅在有文本的情况下显示,即不为空
比如说,使用相对布局,我在第一行显示一个日期文本字段,然后在它旁边显示一个item textview,然后我想在item textview下面显示一个description textview,但前提是该描述不是空的。我们是否可以使用“条件”属性?我们怎么能这样做在Android中,如何使用相对布局,在另一个视图下显示一个视图(例如textview),但仅在有文本的情况下显示,即不为空,android,android-relativelayout,Android,Android Relativelayout,比如说,使用相对布局,我在第一行显示一个日期文本字段,然后在它旁边显示一个item textview,然后我想在item textview下面显示一个description textview,但前提是该描述不是空的。我们是否可以使用“条件”属性?我们怎么能这样做 谢谢 任何框架视图都没有此类条件属性 一种简单的方法是在Java代码中这样做: String description; TextView descriptionView; if (TextUtils.isEmpty(descripti
谢谢 任何框架视图都没有此类条件属性 一种简单的方法是在Java代码中这样做:
String description;
TextView descriptionView;
if (TextUtils.isEmpty(description)) {
descriptionView.setVisibility(View.GONE);
} else {
descriptionView.setText(description);
descriptionView.setVisibility(View.VISILBE);
}
当有内容要显示时,您可以将TextView放置在布局中您希望它位于的任何位置,当没有内容要显示时,只需将其隐藏。TextView上有一个属性,可用于控制其可见性。 在xml中:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/dependentTextViewId"
android:visibility="invisible"
/>
条件互换!当description为空时,应该使视图消失,反之亦然,实际上,使用自定义SimpleAdapter并重写getView方法,您只需要执行隐藏TextView对象的部分。嘿感谢您在示例代码中提到TextUtils!!!我不知道这件事。我已经创建了自己的StringUtil类!!!这是我非常喜欢的,我们可以很容易地在Android中自定义我们的视图。。。如果我们知道怎么做!:-)事实上,我错了!我们确实需要将可见性设置回原来的位置!
TextView tv = (TextView) myView.findViewById(R.id.dependentTextViewId);
tv.setVisibility(View.VISIBLE);
//Thanks to Tanis for providing the answer on conditionally hiding a TextView
//So the complete solution is to create a custom SimpleAdapter:
public class JournalDisplayListAdapter extends SimpleAdapter {
//--- some code skipped here
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = super.getView(position, convertView, parent);
TextView activityGroupName;
TextView activityDescription;
if (row != null) {
activityGroupName = (TextView) row.findViewById(R.id.activityGroupName);
if (TextUtils.isEmpty(activityGroupName.getText())){
activityGroupName.setVisibility(View.GONE);
} else {
activityGroupName.setVisibility(View.VISIBLE);
}
activityDescription = (TextView) row.findViewById(R.id.activityDescription);
if (TextUtils.isEmpty(activityDescription.getText())){
activityDescription.setVisibility(View.GONE);
}else {
activityDescription.setVisibility(View.VISIBLE);
}
}
return row;
}