gpt4 book ai didi

android - 如果可能的话,填充空格的动态 TextView

转载 作者:行者123 更新时间:2023-12-03 20:51:52 26 4
gpt4 key购买 nike

在android中,我们有约束,所以我们可以将 View 放在另一个 View 的开头和另一个 View 的结尾

具体TextView当您将其设置为另一个 View 的开始时,它将如下所示:-

Tex | Another View
tVi |
ew |

有什么布局可以帮助我获得动态 TextView例如,上面的看起来像:-
Tex | Another View
tView | Parent device border

这是一个视觉示例:-

enter image description here

最佳答案

也许 FlowTextView可以解决你的问题。 FlowTextView 基于具有添加 TextView 功能的 RelativeLayout,该功能将其文本包装在其子项周围。
或者,如果 TextView 在右侧而图像在左侧,对您来说没问题,如下所示:

---------
| Image | Text that is so
--------- long that it's
wrapping around the image
你可以试试 LeadingMarginSpan2 :
像这样实现它:
public class MyLeadingMarginSpan2 implements LeadingMarginSpan.LeadingMarginSpan2 {

int lines;
int offset;

public MyLeadingMarginSpan2(int lines, int offset) {
this.lines = lines;
this.offset = offset;
}

@Override
public int getLeadingMarginLineCount() {
return lines;
}

@Override
public int getLeadingMargin(boolean first) {
return first ? offset : 0;
}

@Override
public void drawLeadingMargin(Canvas c, Paint p, int x, int dir, int top, int baseline, int bottom, CharSequence text, int start, int end, boolean first, Layout layout) {

}
}
并在您的代码中像这样使用它:
float textLineHeight = textView.getPaint().getTextSize();
int lines = (int) (imageView.getMeasuredHeight() / textLineHeight) + 1;
int offset = imageView.getMeasuredWidth();

SpannableString text = new SpannableString("Text that is so long that it's wrapping around the image");
text.setSpan(new MyLeadingMarginSpan2(lines, offset), 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView.setText(text);
如果您想为非常旧的 Android 版本(< 2.2)提供额外的回退,您可以查看类似问题的答案: https://stackoverflow.com/a/8463221/13792619

关于android - 如果可能的话,填充空格的动态 TextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62450551/

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