为 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的主要内容,如果未能解决你的问题,请参考以下文章

对 UIScrollView 的 RTL 支持

ag-grid 标题在水平滚动时向相反方向移动

如何在 Swift 中创建单页垂直滚动 PDFView

Wordpress Visual Composer Strech 行和方向 RTL

是否可以为 onsen ui 2 添加 RTL 方向?

位置粘性与方向 rtl 不起作用