Android PDF прокрутка одной непрерывной страницы

В xcode я могу отображать PDF как одну непрерывную страницу, при этом ширина PDF равна ширине экрана, а затем вертикальная прокрутка является высотой PDF для указанной ширины. Нет проблем

В настоящее время конвертирует одно и то же приложение в Android и испытывает некоторые трудности с реализацией того же представления PDF

В основном у меня есть очень длинная страница PDF (одна страница). Я не хочу пролистывать страницы, но вместо этого, как и в моем приложении для iOS, документ PDF заполняет ширину экрана Android, а затем прокручивается по вертикали, чтобы показать остальную часть PDF

Я использую com.github.barteksc.pdfviewer.PDFView для отображения моего PDF

В моем xml для деятельности у меня есть:

<?xml version = "1.0" encoding = "utf-8"?>


<ScrollView xmlns:android = "http://schemas.android.com/apk/res/android"
            xmlns:app = "http://schemas.android.com/apk/res-auto"
            xmlns:tools = "http://schemas.android.com/tools"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"
            android:fillViewport = "true">

            tools:context = ".ProfileActivity">

                <LinearLayout
                     android:layout_width = "match_parent"
                     android:layout_height = "match_parent"
                     android:orientation = "vertical">

                        <com.github.barteksc.pdfviewer.PDFView
                             android:id = "@+id/pdfView"
                             android:layout_width = "match_parent"
                             android:layout_height = "match_parent"/>
                 </LinearLayout>
</ScrollView>

Я попытался изменить layout_height на «wrap_content» для scrollView, Linear и pdf, поскольку это может показаться уместным, но всякий раз, когда я это делаю, я получаю пустой экран. Кажется, что это приводит к отсутствию атрибута высоты, поэтому представление полностью рушится.

Я получаю: Android PDF прокрутка одной непрерывной страницы

Что я хочу: Android PDF прокрутка одной непрерывной страницы

Буду очень признателен за любую дополнительную помощь, это действительно мой единственный камень преткновения. Я бы хотел, чтобы у Android был PDFKit (аналогичный), так как я обнаружил, что его довольно легко использовать и реализовать

PSDFKit выглядит как иметь возможность непрерывной вертикальной прокрутки. В качестве альтернативы, возможно, ваш контент должен быть представлен в виде одной веб-страницы, которую вы бы отображали с помощью WebView.

CommonsWare 16.06.2019 13:39

Спасибо CommonsWare, я бы предпочел не использовать PSPDFKit из-за обвинений. Что касается WebView, не могли бы вы расширить?

Nicholas Farmer 16.06.2019 13:41

Что ж, веб-страницы естественным образом работают в режиме непрерывной вертикальной прокрутки. Например, прокрутите эту веб-страницу. Возможно, ваш контент может быть в формате HTML/CSS/JS вместо формата PDF.

CommonsWare 16.06.2019 13:45

Извините, но какой нелепый комментарий .... вопрос конкретно о PDF, с какой стати мне менять содержимое на HTML ... буквально ничего общего с вопросом, просто трачу свое время. Если бы я мог минусовать комментарий, я бы тысячу раз

Nicholas Farmer 16.06.2019 14:12

«С какой стати мне менять содержимое на HTML» — потому что это соответствует желаемому шаблону рендеринга и бесплатно. Итак, теперь вы ищете решение, в котором вы навязываете формат контента, шаблон рендеринга и цену. Не удивляйтесь, если вам придется реализовывать гораздо более низкоуровневые вещи для достижения этой комбинации, такие как внесение исправлений в библиотеку с открытым исходным кодом, которую вы пытаетесь использовать, если нет встроенной опции для непрерывной вертикальной прокрутки.

CommonsWare 16.06.2019 14:18

Достаточно справедливо вашего ответа, извините за мой предыдущий комментарий, если он груб. К сожалению, ранее я видел комментарии, которые не имеют отношения к вопросу, и меня это бесит. Однако в конечном итоге вопрос в том, что я ищу решение, похожее на PDFkit в Android. Я был бы очень удивлен, если бы узнал, что такой рендеринг невозможен. У меня более 100 PDF-файлов, поэтому переход на HTML, к сожалению, не вариант.

Nicholas Farmer 16.06.2019 14:24

Я предполагаю, что проблема, с которой я сталкиваюсь, связана с проблемой ограничения макета, когда мне нужно установить PDF в ширину представления, а затем высоту просмотра, чтобы соответствовать PDF на этой ширине. В то время как в настоящее время происходит обратное, он устанавливает PDF на высоту представления, а затем соответствует ширине PDF на этой высоте.

Nicholas Farmer 16.06.2019 14:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
7
2 120
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ну есть ответ!

Мне пришлось «обновиться» до последней версии: 3.1.0-beta.1 и использовать:

.pageFitPolicy(FitPolicy.WIDTH)

В сочетании с моим XML:

<ScrollView xmlns:android = "http://schemas.android.com/apk/res/android"
        xmlns:app = "http://schemas.android.com/apk/res-auto"
        xmlns:tools = "http://schemas.android.com/tools"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:fillViewport = "true">
        tools:context = ".AboutActivity">

<LinearLayout
        android:layout_width = "match_parent"
        android:layout_height = "0dp"
        android:orientation = "vertical">

    <com.github.barteksc.pdfviewer.PDFView
            android:id = "@+id/pdfView"
            android:layout_width = "match_parent"
            android:layout_height = "match_parent"/>
</LinearLayout>
</ScrollView>

Работал отлично. Я надеюсь, что это поможет другим

Другие вопросы по теме