textview片段中的字符限制?

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

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

public class StackAdapter extends FragmentPagerAdapter {
    private int charMax;
    private String content;
    private List<String> parts;

    public StackAdapter(FragmentManager fragmentManager, int charMax, String content) {
        super(fragmentManager);
        this.charMax = charMax;
        this.content = content;
        this.parts = getParts(content, charMax);
    }

    // Returns total number of pages
    @Override
    public int getCount() {
        return parts.size();
    }

    // Returns the fragment to display for that page
    @Override
    public Fragment getItem(int position) {
        return PageFragment.newInstance(position, parts.get(position));
    }

    // Returns the page title for the top indicator
    @Override
    public CharSequence getPageTitle(int position) {
        return "Page " + position;
    }

    private List<String> getParts(String string, int partitionSize) {
        List<String> parts = new ArrayList<String>();
        int len = string.length();
        for (int i = 0; i < len; i += partitionSize) {
            parts.add(string.substring(i, Math.min(len, i + partitionSize)));
        }
        return parts;
    }

}

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

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

现在是这样的:

暂无答案!

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

相关问题