为 PDFView 设置 RTL 滚动方向 - Android
Posted
技术标签:
【中文标题】为 PDFView 设置 RTL 滚动方向 - Android【英文标题】:Set RTL scroll direction for PDFView - Android 【发布时间】:2017-04-03 11:38:39 【问题描述】:我正在使用一个 Github 库来查看 PDF 文件。 https://github.com/barteksc/androidPdfViewer
我想设置滚动方向 RTL。请帮助更改此库的滚动方向。
我已经尝试了以下链接的解决方案 https://github.com/JoanZapata/android-pdfview/issues/60
但它对我不起作用。
【问题讨论】:
【参考方案1】:我发现了一个 hack。将您的 pdf 旋转 180 度,然后在您的代码中添加以下行
pdf_activity_read_quraan.rotation = 180F
pdf_activity_read_quraan
在哪里是com.github.barteksc.pdfviewer.PDFView
的引用
【讨论】:
...PdfView 的未知字段“旋转” 我的代码是:pdfview.rotation = 180F; @BillelArfi 如果您使用的是 java,请使用 setRotation 我用它,但现在页面颠倒了 @BillelArfi 也使用一些在线软件将您的 pdf 更改为 180。并使用旋转而不是旋转x或旋转 @BillelArfi 如果您觉得答案有用,请您投票赞成【参考方案2】:尝试在清单文件的Application
标签中添加android:supportsRtl="true"
。
来源:https://developer.android.com/guide/topics/manifest/application-element.html
可能的解决方法是像这样获取滚动和强制移动:
mScrollView.postDelayed(new Runnable()
public void run()
scrollView.fullScroll(HorizontalScrollView.FOCUS_RIGHT); // or scrollTo
, 100L);
【讨论】:
我正在使用下面的类来显示 PDF 并动态管理滚动。 github.com/barteksc/AndroidPdfViewer/blob/master/…【参考方案3】:在 onCreate 方法中使用 onLoad 方法,如下所示:
mypdfviewer.fromAsset("Quran.pdf").onLoad(new OnLoadCompleteListener()
@Override
public void loadComplete(int nbPages)
mypdfviewer.fromAsset("Quran.pdf")
.pages(getPage(nbPages))
.defaultPage(nbPages)
.enableSwipe(true)
.enableDoubletap(true)
.swipeHorizontal(true)
.password(null).enableAntialiasing ( true ).spacing(0)
.pageSnap(true).pageFling(true)
.autoSpacing ( false ).pageFitPolicy ( FitPolicy. WIDTH ).fitEachPage ( true )
.scrollHandle(new DefaultScrollHandle(null))
.load();
).load();
**创建getPage方法**
private int [] getPage(int nbPages)
int [] pages =new int[nbPages];
int j=0;
for(int i=pages.length-1; i>=0; i--)
pages[j]=i;
j++;
return pages;
为我工作:)
【讨论】:
以上是关于为 PDFView 设置 RTL 滚动方向 - Android的主要内容,如果未能解决你的问题,请参考以下文章