#android #android-viewpager #android-nestedscrollview #pdf-viewer
Вопрос:
enter code here
Мой корневой макет-это вложенный вид прокрутки внутри вложенного вида прокрутки создайте видовой экран для изменения pdf слева направо или справа налево, он работает правильно, но при прокрутке pdf вверх вниз для изменения вида pdf, так что он не работает должным образом.
Что я хочу:- Я хочу, чтобы при нажатии кнопки «Далее» и «предыдущая стрелка» pdf изменялся, а при прокрутке вверх вниз изменялся pdf внутри содержимого
мой поток кода похож на (котлин):- (1) создайте дизайн одного элемента в дизайне, который я использовал в формате pdf barteksc. (2) создайте адаптер для класса,класса модели для просмотра pdf (3) установите адаптер в viewpager
barteksc:android-pdf-просмотрщик:2.8.2 Я использовал эту зависимость
Примечание:- без вложенного вида прокрутки он будет работать идеально, но я хочу с видом прокрутки.
Спасибо.введите описание изображения здесь
activity_main.xml
<androidx.core.widget.NestedScrollView
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="wrap_content"
android:background="@color/listing_background"
android:id="@ id/scrolview_parrent"
tools:context=".view.activity.ListingActivity">
<LinearLayout
android:id="@ id/linear_viewing_area"
android:layout_width="match_parent"
android:layout_height="@dimen/_180sdp"
android:layout_below="@id/linear_export_excel"
android:orientation="vertical"
android:layout_marginBottom="@dimen/_15sdp"
android:background="@drawable/viewing_area_bg"
android:layout_marginStart="@dimen/_10sdp"
android:layout_marginEnd="@dimen/_10sdp"
android:padding="@dimen/_5sdp"
android:visibility="visible"
android:layout_marginTop="@dimen/_15sdp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/pdf_view_bg">
<androidx.viewpager.widget.ViewPager
android:nestedScrollingEnabled="false"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@ id/viewpager_for_pdf_listing"
android:layout_centerInParent="true"
android:clipToPadding="false"
android:foregroundGravity="center" />
<ImageView
android:id="@ id/img_next_listing"
android:layout_width="@dimen/_40sdp"
android:layout_height="35dp"
android:src="@drawable/fws"
android:layout_marginEnd="@dimen/_100sdp"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_marginRight="5dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
/>
<ImageView
android:id="@ id/img_previous_listing"
android:layout_width="@dimen/_40sdp"
android:layout_height="35dp"
android:src="@drawable/back"
android:layout_centerVertical="true"
android:layout_marginStart="@dimen/_100sdp"
android:layout_alignParentLeft="true"
android:paddingTop="5dp"
android:paddingBottom="5dp"/>
</RelativeLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
xml-файл дизайна одного элемента.
enter code here
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:background="@color/pdf_view_bg"
android:layout_height="match_parent">
<com.github.barteksc.pdfviewer.PDFView
android:id="@ id/pdfview"
android:nestedScrollingEnabled="false"
android:layout_width="@dimen/_189sdp"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:layout_marginTop="@dimen/_15sdp"
android:layout_marginBottom="@dimen/_15sdp"
android:padding="@dimen/_5sdp" />
Adapter Class
enter code here
class PdfAdapter(private val context: Context, private val pdfList: ArrayList<PdfModel>) :
PagerAdapter() {
override fun getCount(): Int {
return pdfList.size
}
override fun isViewFromObject(view: View, `object`: Any): Boolean {
return view == `object`
}
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val view = LayoutInflater.from(context)
.inflate(R.layout.single_row_design_for_pdfview, container, false)
val model = pdfList[position]
val pdfview = model.pdf
//set datato ui view
view.pdfview.fromStream(pdfview).load()
view.pdfview.isNestedScrollingEnabled
container.addView(view, position)
return view
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as View)
}
}
Класс основной активности
enter code here
private fun loadPdf() {
pdfModel = ArrayList()
pdfModel.add(PdfModel(assets.open("AI1.pdf")))
pdfModel.add(PdfModel(assets.open("AI2.pdf")))
pdfModel.add(PdfModel(assets.open("AI3.pdf")))
// setup adapter
pdfAdapter = PdfAdapter(this, pdfModel)
//set adapter to viewpager
viewpager_for_pdf_listing.adapter = pdfAdapter
// set default padding
viewpager_for_pdf_listing.setPadding(60, 0, 60, 0)
//disable view pager swipe.
//only swipe when click buttun
viewpager_for_pdf_listing.setOnTouchListener { v, event -> true }
}
Комментарии:
1. Пытался
nestedScrollingEnabled=true
?2. Я попробовал nestedScrollingEnable = true, но все равно pdf не прокручивается
3. Какой PDFViewer вы используете?
4. com.github.barteksc.pdfviewer. PDFView
5. привет, камаль, я отредактировал свой код