Android view for displaying PDFs rendered with PdfiumAndroid

Overview

Looking for new maintainer!

Android PdfViewer

AndroidPdfViewer 1.x is available on AndroidPdfViewerV1 repo, where can be developed independently. Version 1.x uses different engine for drawing document on canvas, so if you don't like 2.x version, try 1.x.

Library for displaying PDF documents on Android, with animations, gestures, zoom and double tap support. It is based on PdfiumAndroid for decoding PDF files. Works on API 11 (Android 3.0) and higher. Licensed under Apache License 2.0.

What's new in 3.2.0-beta.1?

  • Merge PR #714 with optimized page load
  • Merge PR #776 with fix for max & min zoom level
  • Merge PR #722 with fix for showing right position when view size changed
  • Merge PR #703 with fix for too many threads
  • Merge PR #702 with fix for memory leak
  • Merge PR #689 with possibility to disable long click
  • Merge PR #628 with fix for hiding scroll handle
  • Merge PR #627 with fitEachPage option
  • Merge PR #638 and #406 with fixed NPE
  • Merge PR #780 with README fix
  • Update compile SDK and support library to 28
  • Update Gradle and Gradle Plugin

Changes in 3.0 API

  • Replaced Contants.PRELOAD_COUNT with PRELOAD_OFFSET
  • Removed PDFView#fitToWidth() (variant without arguments)
  • Removed Configurator#invalidPageColor(int) method as invalid pages are not rendered
  • Removed page size parameters from OnRenderListener#onInitiallyRendered(int) method, as document may have different page sizes
  • Removed PDFView#setSwipeVertical() method

Installation

Add to build.gradle:

implementation 'com.github.barteksc:android-pdf-viewer:3.2.0-beta.1'

or if you want to use more stable version:

implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'

Library is available in jcenter repository, probably it'll be in Maven Central soon.

ProGuard

If you are using ProGuard, add following rule to proguard config file:

-keep class com.shockwave.**

Include PDFView in your layout

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

Load a PDF file

All available options with default values:

pdfView.fromUri(Uri)
or
pdfView.fromFile(File)
or
pdfView.fromBytes(byte[])
or
pdfView.fromStream(InputStream) // stream is written to bytearray - native code cannot use Java Streams
or
pdfView.fromSource(DocumentSource)
or
pdfView.fromAsset(String)
    .pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default
    .enableSwipe(true) // allows to block changing pages using swipe
    .swipeHorizontal(false)
    .enableDoubletap(true)
    .defaultPage(0)
    // allows to draw something on the current page, usually visible in the middle of the screen
    .onDraw(onDrawListener)
    // allows to draw something on all pages, separately for every page. Called only for visible pages
    .onDrawAll(onDrawListener)
    .onLoad(onLoadCompleteListener) // called after document is loaded and starts to be rendered
    .onPageChange(onPageChangeListener)
    .onPageScroll(onPageScrollListener)
    .onError(onErrorListener)
    .onPageError(onPageErrorListener)
    .onRender(onRenderListener) // called after document is rendered for the first time
    // called on single tap, return true if handled, false to toggle scroll handle visibility
    .onTap(onTapListener)
    .onLongPress(onLongPressListener)
    .enableAnnotationRendering(false) // render annotations (such as comments, colors or forms)
    .password(null)
    .scrollHandle(null)
    .enableAntialiasing(true) // improve rendering a little bit on low-res screens
    // spacing between pages in dp. To define spacing color, set view background
    .spacing(0)
    .autoSpacing(false) // add dynamic spacing to fit each page on its own on the screen
    .linkHandler(DefaultLinkHandler)
    .pageFitPolicy(FitPolicy.WIDTH) // mode to fit pages in the view
    .fitEachPage(false) // fit each page to the view, else smaller pages are scaled relative to largest page.
    .pageSnap(false) // snap pages to screen boundaries
    .pageFling(false) // make a fling change only a single page like ViewPager
    .nightMode(false) // toggle night mode
    .load();
  • pages is optional, it allows you to filter and order the pages of the PDF as you need

Scroll handle

Scroll handle is replacement for ScrollBar from 1.x branch.

From version 2.1.0 putting PDFView in RelativeLayout to use ScrollHandle is not required, you can use any layout.

To use scroll handle just register it using method Configurator#scrollHandle(). This method accepts implementations of ScrollHandle interface.

There is default implementation shipped with AndroidPdfViewer, and you can use it with .scrollHandle(new DefaultScrollHandle(this)). DefaultScrollHandle is placed on the right (when scrolling vertically) or on the bottom (when scrolling horizontally). By using constructor with second argument (new DefaultScrollHandle(this, true)), handle can be placed left or top.

You can also create custom scroll handles, just implement ScrollHandle interface. All methods are documented as Javadoc comments on interface source.

Document sources

Version 2.3.0 introduced document sources, which are just providers for PDF documents. Every provider implements DocumentSource interface. Predefined providers are available in com.github.barteksc.pdfviewer.source package and can be used as samples for creating custom ones.

Predefined providers can be used with shorthand methods:

pdfView.fromUri(Uri)
pdfView.fromFile(File)
pdfView.fromBytes(byte[])
pdfView.fromStream(InputStream)
pdfView.fromAsset(String)

Custom providers may be used with pdfView.fromSource(DocumentSource) method.

Links

Version 3.0.0 introduced support for links in PDF documents. By default, DefaultLinkHandler is used and clicking on link that references page in same document causes jump to destination page and clicking on link that targets some URI causes opening it in default application.

You can also create custom link handlers, just implement LinkHandler interface and set it using Configurator#linkHandler(LinkHandler) method. Take a look at DefaultLinkHandler source to implement custom behavior.

Pages fit policy

Since version 3.0.0, library supports fitting pages into the screen in 3 modes:

  • WIDTH - width of widest page is equal to screen width
  • HEIGHT - height of highest page is equal to screen height
  • BOTH - based on widest and highest pages, every page is scaled to be fully visible on screen

Apart from selected policy, every page is scaled to have size relative to other pages.

Fit policy can be set using Configurator#pageFitPolicy(FitPolicy). Default policy is WIDTH.

Additional options

Bitmap quality

By default, generated bitmaps are compressed with RGB_565 format to reduce memory consumption. Rendering with ARGB_8888 can be forced by using pdfView.useBestQuality(true) method.

Double tap zooming

There are three zoom levels: min (default 1), mid (default 1.75) and max (default 3). On first double tap, view is zoomed to mid level, on second to max level, and on third returns to min level. If you are between mid and max levels, double tapping causes zooming to max and so on.

Zoom levels can be changed using following methods:

void setMinZoom(float zoom);
void setMidZoom(float zoom);
void setMaxZoom(float zoom);

Possible questions

Why resulting apk is so big?

Android PdfViewer depends on PdfiumAndroid, which is set of native libraries (almost 16 MB) for many architectures. Apk must contain all this libraries to run on every device available on market. Fortunately, Google Play allows us to upload multiple apks, e.g. one per every architecture. There is good article on automatically splitting your application into multiple apks, available here. Most important section is Improving multiple APKs creation and versionCode handling with APK Splits, but whole article is worth reading. You only need to do this in your application, no need for forking PdfiumAndroid or so.

Why I cannot open PDF from URL?

Downloading files is long running process which must be aware of Activity lifecycle, must support some configuration, data cleanup and caching, so creating such module will probably end up as new library.

How can I show last opened page after configuration change?

You have to store current page number and then set it with pdfView.defaultPage(page), refer to sample app

How can I fit document to screen width (eg. on orientation change)?

Use FitPolicy.WIDTH policy or add following snippet when you want to fit desired page in document with different page sizes:

Configurator.onRender(new OnRenderListener() {
    @Override
    public void onInitiallyRendered(int pages, float pageWidth, float pageHeight) {
        pdfView.fitToWidth(pageIndex);
    }
});

How can I scroll through single pages like a ViewPager?

You can use a combination of the following settings to get scroll and fling behaviour similar to a ViewPager:

    .swipeHorizontal(true)
    .pageSnap(true)
    .autoSpacing(true)
    .pageFling(true)

One more thing

If you have any suggestions on making this lib better, write me, create issue or write some code and send pull request.

License

Created with the help of android-pdfview by Joan Zapata

Copyright 2017 Bartosz Schiller

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Comments
  • java.lang.IllegalStateException: Don't call load on a PDF View without recycling it first

    java.lang.IllegalStateException: Don't call load on a PDF View without recycling it first

    I have a tab view wherein three tabs exists. All the tab has pdfview. Each tab loads different pdf file from the database. Whenever the downloaded file loads in the pdfview (all this is happening inside async task) the following error shows up and then the app crashes

    java.lang.IllegalStateException: Don't call load on a PDF View without recycling it first

    I am not sure what am I supposed to do!

    class MyAsync extends AsyncTask<Void, Void, Void> {
    
                
               PDFView pdfView;
                
    
                public MyAsync(PDFView pdfView) {
                    
                   this.pdfView = pdfView;
                    
    
                }
    
                @Override
                protected void onPreExecute() {
                    super.onPreExecute();
                    pd.setMessage("Uploading . . .");
                    pd.show();
                    pd.setCancelable(false);
                }
    
                @Override
                protected Void doInBackground(Void... voids) {
    
                   publishProgress();
    
                    return null;
                }
    
                @Override
                protected void onProgressUpdate(Void... values) {
    
                   
    
    
                    dataRef.child(dbs).addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {
                            if (dataSnapshot.hasChild(root_child)) {
                                String url = dataSnapshot.child(root_child).getValue().toString();
                                StorageReference island = storage.getReferenceFromUrl(url);
    
                                final File file;
    
                                try {
                                    file = File.createTempFile(file_name, "pdf");
                                    island.getFile(file).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
                                        @Override
                                        public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
    
                                            yes_file(pdfView, tv1, tv2);
                                            pdfView.fromFile(file).load();
                                            
                                        }
                                    }).addOnFailureListener(new OnFailureListener() {
                                        @Override
                                        public void onFailure(@NonNull Exception e) {
                                            Toast.makeText(getActivity(), "Upload unsuccessful", Toast.LENGTH_LONG).show();
                                        }
                                    });
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
    
    
                            } 
                        }
    
                        @Override
                        public void onCancelled(DatabaseError databaseError) {
    
                        }
                    });
                }
    
                @Override
                protected void onPostExecute(Void aVoid) {
                    super.onPostExecute(aVoid);
                    pd.dismiss();
                }
            }
    
    opened by Maddy14 24
  • How i can Make FullScreen PDFView When i Rotate Screen.

    How i can Make FullScreen PDFView When i Rotate Screen.

    Hi Could You help me please about making full screen pdfviewer when change rotation like lanscape. I tried two methods but didnt work, First one;

            PDFView.Configurator.onRender(new OnRenderListener() {
                @Override
                public void onInitiallyRendered(int nbPages, float pageWidth, float pageHeight) {
                    pdfView.fitToWidth();
                }
            });
    

    Second one;

        @Override
        public void onConfigurationChanged(Configuration newConfig)
        {
            super.onConfigurationChanged(newConfig);
            if(newConfig.orientation ==Configuration.ORIENTATION_LANDSCAPE)
            {
                pdfView.fitToWidth();
            }
        }
    

    Help me please how i can do that? By the way, i want to do this responsivelity.

    opened by Abraxelx 24
  • Rendering quality when zooming/dezooming

    Rendering quality when zooming/dezooming

    First, thank you very much for your work, I think a lot of people are waiting for a library like yours.

    I was wondering if it could be possible to improve the render when loading the tiles? I have noticed that the library displays bad quality of the tiles when "re-calculating" the render for the given zoom (I suppose!). You'll find a screenshot in attachment.

    Thank you,

    untitled

    opened by aurelhubert 19
  • App crash when using

    App crash when using ".pages()"

    Hey, I'm facing an issue since '3.0.0-beta.1' I have a pdf with different size width. When I try to load a given page with .pages(1) for example, the pdf load a blurry page and the app crash when I try to scroll.

    Here is my code :

    pdf.fromAsset("file.pdf")
        .pages(1)
        .load();
    

    Here is an example of file : file.pdf

    Here is the blurry image I get : screenshot_1514037624 screenshot_1514037634

    EDIT : When I try to load all page (like .pages(1,0)) there is no problem

    opened by yohann84L 18
  • Blurred text after calling the method

    Blurred text after calling the method "jumpTo()"

    i tested lib ver. compile 'com.github.barteksc:android-pdf-viewer:3.0.0-beta.2' compile 'com.github.barteksc:android-pdf-viewer:2.8.0' compile 'com.github.barteksc:android-pdf-viewer:2.7.0' from all of the above versions i got the blurred view.

    opened by AadilDAR 15
  • Split pages visually after rendering

    Split pages visually after rendering

    First of all your library is awesome! But I have one issue: Is it possible to draw a gap between the pages of a pdf? Or maybe something like a CardView. Actually the pages fuse into eachother and it is hard to see where one page ends and another page starts. Thanks in advance

    opened by Knarff 15
  • Failed to resolve: com.github.barteksc:android-pdf-viewer:2.6.1

    Failed to resolve: com.github.barteksc:android-pdf-viewer:2.6.1

    When i adding compile inside my Gradle like: compile 'com.github.barteksc:android-pdf-viewer:2.6.1' Android Studio threw this error "Failed to resolve: com.github.barteksc:android-pdf-viewer:2.6.1 ". How can i fix it? By the way i tried to add 'com.github.barteksc:android-pdf-viewer:2.7.0-beta.1' also. Same Error... Thanks.

    opened by Abraxelx 14
  • Password option not working

    Password option not working

    I'm working on a project that requires a password protected pdf but when i put the correct password the pdf doesn't load and i get this error in android monitor: E/PDFView: load pdf error java.io.IOException: File is empty at com.shockwave.pdfium.PdfiumCore.nativeOpenDocument(Native Method) at com.shockwave.pdfium.PdfiumCore.newDocument(PdfiumCore.java:107) at com.github.barteksc.pdfviewer.source.FileSource.createDocument(FileSource.java:38) at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:49) at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:25) at android.os.AsyncTask$2.call(AsyncTask.java:295) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)

    Although it works without password. I use this for the pdf reader. readerView.fromFile(mBook) .enableSwipe(true) .swipeHorizontal(true) .enableDoubletap(true) .defaultPage(0) .enableAnnotationRendering(false) .password("08034283779") .defaultPage(pageNumber) .onPageChange(this) .onLoad(this) .scrollHandle(new DefaultScrollHandle(this)) .load();

    Is there a different way of using passwords?

    invalid 
    opened by danielobasi 14
  • Open document failed

    Open document failed

    Hi, recently i got this error

    com.shockwave.pdfium.PdfOpenException: Open document failed
    at com.shockwave.pdfium.PdfiumCore.newDocument(PdfiumCore.java:72)
    at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:61)
    at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:32)
    at android.os.AsyncTask$2.call(AsyncTask.java:287)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
    at java.lang.Thread.run(Thread.java:856)
    

    Do you have any idea why? How could i fix this? Thanks

    opened by elsennov 14
  • 2.8.1 No implementation found for native nativeOpenDocument

    2.8.1 No implementation found for native nativeOpenDocument

    Please forgive not using latest version, but I have some 600 deployments out there using 2.8.1.

    My problem is that some of them are not displaying the documents and some of them work fine. All are running the same version of the software. All are Android 4.2 tablets.

    So, using this code:

          final PDFView v = (PDFView) mainView.findViewById(R.id.pdf_layout);
          v.fromFile(new File(Documents.currentDoc)).onRender(new OnRenderListener() {
            @Override
            public void onInitiallyRendered(int nbPages, float pageWidth, float pageHeight)
            {
              v.fitToWidth();
            }
          }).load();
    

    Displaying the SAME PDF works fine on one tablet and not at all on another. Here's what logcat says (for the non-working ones):

    10:24:30.476 3859  4082                 dalvikvm W No implementation found for native Lcom/shockwave/pdfium/PdfiumCore;.nativeOpenDocument:(ILja
                                             va/lang/String;)J
    10:24:30.486 3859  3859                  PDFView E load pdf error
    10:24:30.486 3859  3859                  PDFView E java.lang.UnsatisfiedLinkError: Native method not found: com.shockwave.pdfium.PdfiumCore.nati
                                             veOpenDocument:(ILjava/lang/String;)J
    10:24:30.486 3859  3859                  PDFView E at com.shockwave.pdfium.PdfiumCore.nativeOpenDocument(Native Method)
    10:24:30.486 3859  3859                  PDFView E at com.shockwave.pdfium.PdfiumCore.newDocument(PdfiumCore.java:113)
    10:24:30.486 3859  3859                  PDFView E at com.github.barteksc.pdfviewer.source.FileSource.createDocument(FileSource.java:38)
    10:24:30.486 3859  3859                  PDFView E at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:53)<
                                             /span>
    10:24:30.486 3859  3859                  PDFView E at com.github.barteksc.pdfviewer.DecodingAsyncTask.doInBackground(DecodingAsyncTask.java:25)<
                                             /span>
    10:24:30.486 3859  3859                  PDFView E at android.os.AsyncTask$2.call(AsyncTask.java:287)
    10:24:30.486 3859  3859                  PDFView E at java.util.concurrent.FutureTask.run(FutureTask.java:234)
    10:24:30.486 3859  3859                  PDFView E at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
    10:24:30.486 3859  3859                  PDFView E at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
    10:24:30.486 3859  3859                  PDFView E at java.lang.Thread.run(Thread.java:856)
    

    Any hints as to what might be wrong here? It's not a problem moving to a newer version if this is a known issue, but I'd sure like to know what's going on too, if at all possible.

    opened by velis74 13
  • I want to mark on pdf

    I want to mark on pdf

    hi

    thank you for PdfViewer

    I want to know if i Can I make mark on page

    Example

    i open pdf with AndroidPdfViewer i stop on page 20

    When i open next time i want pdf open on page 20 not page 1 If there is such a thing will be very cool thank you

    opened by sapq 13
  • Received status code 521 from server

    Received status code 521 from server

    Could not HEAD 'https://jitpack.io/com/github/barteksc/android-pdf-viewer/3.2.0-beta.1/android-pdf-viewer-3.2.0-beta.1.pom'. Received status code 521 from server:

    I hope the web server is down, It would be appreciated if you take the effort to make it alive

    opened by pbsarathy21 16
  • Why does it not have .setSwipeHorizontal just like .setSnapPages and .setNightMode?

    Why does it not have .setSwipeHorizontal just like .setSnapPages and .setNightMode?

    I want the pdfviewer to swipe horizontal on the click of a switch. That is the user can change the mode to either vertical or horizontal. I can't seem to find a way to set that without having to load the input stream code again. Is there a way to work it out?

    code

    opened by CosyLocales 4
  • getting issue while using it

    getting issue while using it

    Caused by: org.gradle.internal.resource.transport.http.HttpErrorStatusCodeException: Could not HEAD 'https://jitpack.io/com/github/barteksc/android-pdf-viewer/2.8.2/android-pdf-viewer-2.8.2.pom'. Received status code 401 from server: Unauthorized at org.gradle.internal.resource.transport.http.HttpClientHelper.processResponse(HttpClientHelper.java:215) at org.gradle.internal.resource.transport.http.HttpClientHelper.performHead(HttpClientHelper.java:88) at org.gradle.internal.resource.transport.http.HttpResourceAccessor.getMetaData(HttpResourceAccessor.java:68) at org.gradle.internal.resource.transfer.DefaultExternalResourceConnector.getMetaData(DefaultExternalResourceConnector.java:66) at org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceAccessor$MetadataOperation.call(ProgressLoggingExternalResourceAccessor.java:150) at org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceAccessor$MetadataOperation.call(ProgressLoggingExternalResourceAccessor.java:138) Caused by: org.gradle.internal.resource.transport.http.HttpErrorStatusCodeException: Could not HEAD 'https://jitpack.io/com/github/barteksc/android-pdf-viewer/2.8.2/android-pdf-viewer-2.8.2.pom'. Received status code 401 from server: Unauthorized

    opened by 1902shubh 1
  • How prevent change navigationBar state when click on PdfView

    How prevent change navigationBar state when click on PdfView

    I tryed to use windowInsetsController.systemBarsBehavior = BEHAVIOR_DEFAULT and systemUiVisibility = Window.FEATURE_ACTION_BAR_OVERLAY but it not works

    opened by Eugene-Be 0
Owner
null
It is a Mobile Application built with Flutter to help Instructors reach their students with the material needed for their course (Videos, PDFs, Exams)

Droos - Flutter Mobile Appliction It is a Mobile Application built with Flutter to help Instructors reach their students with the material needed for

Abdulrahman Emad 4 Oct 5, 2022
Flutter package for displaying grid view of daily task like Github-Contributions.

flutter_annual_task flutter_annual_task Flutter package for displaying grid view of daily task like Github-Contributions. Example Usage Make sure to c

HuanSuh 24 Sep 21, 2022
Flutter list view - An unofficial list view for flutter

Flutter List View I don't like official list view. There are some features don't

null 24 Dec 15, 2022
Grid-View-App - Grid View App For Flutter

grid_view_app practice purpose flutter application Getting Started This project

Md Tarequl Islam 4 Jun 9, 2022
Swipeable button view - Create Ripple Animated Pages With Swipeable Button View

swipeable_button_view You can create ripple animated pages with swipeable_button

cemreonur 3 Apr 22, 2022
-UNDER DEVELOPMENT- a project built demonstrating model view view model architecture

mvvm_project A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

Atuoha Anthony 4 Nov 28, 2022
Displaying json models in a Flutter widget

Displaying json models in a Flutter widget ?? Cool solution for viewing models in debug working Getting Started Add dependency dependencies: flutter

Stanislav Ilin 54 Dec 19, 2022
The Flutter app demonstrates displaying data in a weekly format.

Flutter weekly chart The Flutter app demonstrates displaying data in a weekly format. I came across this kind of screen in the app that I have been wo

BenBoonya 27 Jan 2, 2023
A showcase app for displaying image lists, developed on Flutter.

flutter_showcase_app Pixabay: A Flutter demo application. A showcase app for displaying image lists, developed on Flutter. Uses BLOC pattern, SQFLite

Muhammad Umair Adil 26 Nov 25, 2022
A cross-platform Flutter widget for displaying websites. Optional navigation buttons.

Overview Gives you a cross-platform Flutter widget for displaying websites and other web content. Licensed under the Apache License 2.0. Links Github

Dint 11 Oct 23, 2022
MoneyTextFormField is one of the flutter widget packages that can be used to input values in the form of currencies, by displaying the output format in realtime.

MoneyTextFormField MoneyTextFormField is one of the flutter widget packages that can be used to input values in the form of currencies, by displaying

Fadhly Permata 11 Jan 1, 2023
A Funtioning basic Clock UI APP with extra functionalities such as displaying thecurrent time location being used and checking time for other timezones simultaneosly.

clock_UI A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this

Anjola Favour Ayomikun 0 Dec 28, 2021
Flutter package for displaying and animating Scalable Vector Graphics 1.1 files. The package has been written solely in Dart Language.

Animated SVG | Flutter Package Flutter package for displaying and animating Scalable Vector Graphics 1.1 files. The package has been written solely in

Bulent Baris Kilic 5 Jul 19, 2022
šŸŒˆ Repository for a compass project, basically an App for displaying bank transfers, with API requests, Flag persistence, Infinite Scroll, Error Handling, Unit Tests, Extract Sharing working with SOLID, BLoC and Designer Patterns.

?? Green Bank AplicaĆ§Ć£o desenvolvida em Flutter com intuito de trabalhar conexĆ£o com API, Gerenciamento de estado usando BLoC, RefatoraĆ§Ć£o, Arquitetur

AndrƩ Guerra Santos 28 Oct 7, 2022
A Flutter package for iOS and Android for picking last seven dates and time with analog view.

analog_time_picker package for Flutter A Flutter package for iOS and Android for picking last seven dates and time with analog view. Demo Installation

sk shamimul islam 12 Aug 31, 2021
Flutter package for Android and iOS allow you to show a wide range of hyperlinks either in the input field or in an article view

Tagtly package help you to detect a lot of hyperlink text such as.. email, url, social media tags, hashtag and more either when user type in text field or when appear a text read only.

Mohamed Nasr 4 Jul 25, 2022
A periodic table app with 3D view of the elements built using flutter.

A flutter app which takes you on a 3d visualisation of the 118 elements of the periodic table. promo.mp4 Tech Stack Deployed using How it all began It

Shanwill Pinto 48 Nov 16, 2022
Flutter Split View and Drawer Navigation example

Flutter Split View and Drawer Navigation example This repo contains the source code for this tutorial: Responsive layouts in Flutter: Split View and D

Andrea Bizzotto 32 Nov 17, 2022
This is an auction application just like eBay. Using firebase as the backend for signup & sign-in functionality. In addition to that, it's a two pages application with user bid in input and count down view.

Nilam This is an auction application just like eBay. Using firebase as the backend for signup & sign-in functionality. In addition to that, it's a two

Md. Siam 5 Nov 9, 2022