gpt4 book ai didi

android - 在 TextView 设置真正的大字符串后运行代码

转载 作者:行者123 更新时间:2023-11-29 23:57:22 25 4
gpt4 key购买 nike

<ScrollView
android:id="@+id/readScrollView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/readTextView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</ScrollView>

这是示例 XML 文件。

ScrollView readScroll = findViewById(R.id.readScrollView);
TextView readTextView = findViewById(R.id.readTextView);
String largeText = So Large Text; // up to megabytes.

readTextView.setText(largeText); // So large that it spend some time.
Log.e("amount", readScrollView.getMaxScrollAmount()); // This Code return 0

我的问题是 Log 返回 0。

我认为这是因为在 setText() 结束这项工作之前执行了 Log。所以我尝试使用线程并使用Thread.join(),它不起作用。

我已经检查过“getMaxScrollAmount() 方法是否正常运行?”配合onClickListener,该方法运行正常,返回1280。

如何在完全结束 setText 代码后运行 Log.e("amount", readScrollView.getMaxScrollAmount()); 这段代码?

最佳答案

试试这段代码:

mScrollView = findViewById(R.id.content_scroll);
mContentTxt = findViewById(R.id.content_txt);

mScrollView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mScrollView.getViewTreeObserver().removeOnGlobalLayoutListener(this);

// MaxScrollAmount return non-zero
int maxScrollAmount = mScrollView.getMaxScrollAmount();
}
});

mContentTxt.setText("Long string here");

基本上,您会听到 ScrollViewer 布局发生变化,这是在其 subview 对其大小进行操作后调用的。在 setText 之前注册事件并在第一次调用时取消注册。

关于android - 在 TextView 设置真正的大字符串后运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50224546/

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