我正在用一个包含片段的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);
现在是这样的:
暂无答案!
目前还没有任何答案,快来回答吧!