如何仅显示具有值的文本视图?
Posted
技术标签:
【中文标题】如何仅显示具有值的文本视图?【英文标题】:How do I display only textviews that have values? 【发布时间】:2021-03-13 08:41:52 【问题描述】:如果我有 10 个文本视图,我如何有效地显示那些有值并隐藏那些没有值而不检查它们是否有值然后为每个文本视图设置 visibility
到 VISIBLE
。有没有有效的方法来做到这一点?
文本视图在 LinearLayout
内
【问题讨论】:
你可以检查一个文本视图是否为空,然后设置它的可见性。有没有一种有效的方法来检查所有 10 个文本视图 那为什么不用if
语句检查它们呢?
【参考方案1】:
您将在代码中找到一个无论如何都会进行此检查的位置。
如果您想删除此检查生成的样板,我可以建议使用 kotlin 扩展函数,如下所示:
fun TextView.setTextOrGone(text: String?)
this.visibility = if (text.isNullOrBlank()) View.GONE else View.VISIBLE
this.text = text
然后像这样设置文本:
textView.setTextOrGone(value)
【讨论】:
【参考方案2】:如果没有要显示的文本,您可以创建一个隐藏自己的自定义文本视图。
public class CustomTextView extends androidx.appcompat.widget.AppCompatTextView
public CustomTextView(@NonNull Context context, @Nullable AttributeSet attrs)
super(context, attrs);
if (getText().toString().isEmpty())
setVisibility(GONE);
else
setVisibility(VISIBLE);
【讨论】:
以上是关于如何仅显示具有值的文本视图?的主要内容,如果未能解决你的问题,请参考以下文章