gpt4 book ai didi

Android 可扩展 TextView , "View More"按钮在 3 行后显示在中心

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:44 29 4
gpt4 key购买 nike

我想在 TextView 中显示描述,如果描述超过 3 行,我想显示一个“查看更多”按钮,用于扩展具有完整描述的 TextView (或具有完整描述的对话框)

我已经引用了一些链接
1) How can I implement a collapsible view like the one from Google Play?

上面的解决方案在 TextView 的第三行末尾有一个类似 ImageView 的箭头,但如果描述跨越 3 行,我希望在 TextView 下方显示一个按钮。

2) Add "View More" at the end of textview after 3 lines

上述解决方案的“查看更多”未对齐(“查看”在第 3 行,“更多”在第 4 行)

我正在寻找这样的东西。 enter image description here

最佳答案

这就是我实现预期输出的方式,

我要扩展的 MytextView 是:tvDescription我有一个名称为“查看更多”的按钮:btnSeeMore

为了检查 textview 是否超过 4 行,我有一个监听器,如下所示,

tvDescription.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
if(expandable) {
expandable = false;
if (tvDescription.getLineCount() > 4) {
btnSeeMore.setVisibility(View.VISIBLE);
ObjectAnimator animation = ObjectAnimator.ofInt(tvDescription, "maxLines", 4);
animation.setDuration(0).start();
}
}
}
});

我保留了一个 bool 值来检查 textview 是否已经展开,以便在折叠时不会出现任何问题。

如果 textview 超过四行, bool 标志将为真,按钮将可见,所以这是展开和折叠动画的代码。

btnSeeMore.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

if (!expand) {
expand = true;
ObjectAnimator animation = ObjectAnimator.ofInt(tvDescription, "maxLines", 40);
animation.setDuration(100).start();
btnSeeMore.setImageDrawable(ContextCompat.getDrawable(getActivity(), R.drawable.ic_collapse));
} else {
expand = false;
ObjectAnimator animation = ObjectAnimator.ofInt(tvDescription, "maxLines", 4);
animation.setDuration(100).start();
btnSeeMore.setImageDrawable(ContextCompat.getDrawable(getActivity(),R.drawable.ic_expand));
}

}
});

在下方评论以获取更多信息

关于Android 可扩展 TextView , "View More"按钮在 3 行后显示在中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668697/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com