textview片段中的字符限制?

vsikbqxv  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(253)

我正在用一个包含片段的viewpager做一个图书阅读器。在每一个片段中,我都有一个文本视图,其中一部分模拟了那本书的一页。问题是,我无法找到如何为每个片段找到正确的字符限制,以便它可以是正确的页面。例如,我现在设置每页600个字符的限制,但我想知道是否有更好的方法设置每页的限制。
这是viewpager适配器,我在其中获取整本书的字符串,并根据设置的字符的分区大小(在本例中为600)将其转换为页面:

  1. public class StackAdapter extends FragmentPagerAdapter {
  2. private int charMax;
  3. private String content;
  4. private List<String> parts;
  5. public StackAdapter(FragmentManager fragmentManager, int charMax, String content) {
  6. super(fragmentManager);
  7. this.charMax = charMax;
  8. this.content = content;
  9. this.parts = getParts(content, charMax);
  10. }
  11. // Returns total number of pages
  12. @Override
  13. public int getCount() {
  14. return parts.size();
  15. }
  16. // Returns the fragment to display for that page
  17. @Override
  18. public Fragment getItem(int position) {
  19. return PageFragment.newInstance(position, parts.get(position));
  20. }
  21. // Returns the page title for the top indicator
  22. @Override
  23. public CharSequence getPageTitle(int position) {
  24. return "Page " + position;
  25. }
  26. private List<String> getParts(String string, int partitionSize) {
  27. List<String> parts = new ArrayList<String>();
  28. int len = string.length();
  29. for (int i = 0; i < len; i += partitionSize) {
  30. parts.add(string.substring(i, Math.min(len, i + partitionSize)));
  31. }
  32. return parts;
  33. }
  34. }

以下是我在主活动中创建适配器的方式:

  1. //Result variable is a string with the book's content.
  2. StackAdapter adapterViewPager = new StackAdapter(getSupportFragmentManager(), 600, result);

现在是这样的:

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题