gpt4 book ai didi

java - 如何在android页面中显示长字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 14:33:44 25 4
gpt4 key购买 nike

我有一个来自数据库的大字符串。我通过滚动在 TextView 中显示了它。

不过,这是一种完全无聊的显示大文本的方法;我想在页面中显示数据。

有多个与此类似的问题,但我无法从中找到任何解决方案;它们不完整且偏离轨道。

挑战

  1. 如何计算适合屏幕的行数?
  2. 如何将字符串拆分为子部分,以便每个子字符串适合一页?

最佳答案

我认为这应该可以解决问题,1.它将分割大字符串2.根据需要在 View 上显示

所以,如果你不想使用 ScrollView ,那么我尝试了一些方法,希望它能有所帮助

下面我完成了1.将所需的 View 膨胀到父 View 中

2.在Textview中设置大文本

3. 检查其他 TextView 是否在(可见)屏幕内

4.适当更新

主要 Activity 类

公共(public)类 MainActivity 扩展 Activity {

private TextView text1, text2;
private Context context;
private LinearLayout layout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = getLayoutInflater().getContext();
layout = (LinearLayout) findViewById(R.id.parentLayout);
setTextViews();
// checkViewAndUpdate();
layout.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
checkViewAndUpdate();
}
});

}

private void checkViewAndUpdate() {

Rect rect = new Rect();
layout.getHitRect(rect);

if (text1.getLocalVisibleRect(rect)) {
Toast.makeText(context, "visible", Toast.LENGTH_LONG).show();
} else {
// update if not visible decreasing the view text size
Toast.makeText(context, "Not visible", Toast.LENGTH_LONG).show();
}
if (text2.getLocalVisibleRect(rect)) {
Toast.makeText(context, "visible", Toast.LENGTH_LONG).show();
} else {
// update if not visible decreasing the view text size
Toast.makeText(context, "Not visible", Toast.LENGTH_LONG).show();
}

}

private void setTextViews() {

text1 = new TextView(context);
text2 = new TextView(context);

text1.setText("your link seems to work. where/when do u trying to call getXXXVisibleRect()? if u do it at onCreate your link seems to work. where/when do u trying to call getXXXVisibleRect()? if u do it at onCreate your link seems to work. where/when do u trying to call getXXXVisibleRect()? if u do it at onCreateyour link seems to work. where/when do u trying to call getXXXVisibleRect()? if u do it at onCreate ");
text2.setText("text2");

text1.setTextSize(30);
text2.setTextSize(30);

// layout.removeAllViews();

layout.addView(text1);
layout.addView(text2);
}

}

关于java - 如何在android页面中显示长字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831611/

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