Some test text!
Xamarin / Guides / List container
The list container is a UI component that contains other components related to annotations and bookmarks.
The list container provides a horizontal layout to display the following items in separate tabs:
The list container is implemented by the BookmarksDialogFragment
class.
To show this fragment in your activity, create a new instance of BookmarksDialogFragment
by calling newInstance()
. Afterwards, initialize your fragment by setting the PDFViewCtrl
and an ArrayList
of DialogFragmentTab
:
private PDFViewCtrl mPdfViewCtrl;
// ...
public void ShowBookmarksDialog(List<DialogFragmentTab> dialogFragmentTabs,
FragmentManager fragmentManager) {
var fragment = BookmarksDialogFragment.NewInstance();
fragment.SetPdfViewCtrl(mPdfViewCtrl)
.SetDialogFragmentTabs(dialogFragmentTabs);
// Set a custom style for this fragment
fragment.SetStyle((int)DialogFragmentStyle.NoTitle, Resource.Style.PDFTronAppTheme);
// Show the dialog
fragment.Show(fragmentManager, "bookmarks_dialog");
}
DialogFragmentTab
specifies the information about each tab including the type of class and the tab tag. Currently the following dialogs can be displayed within the bookmarks dialog:
Dialog | Type of class | Tab tag |
---|---|---|
Annotation list | AnnotationDialogFragment.class | TAG_TAB_ANNOTATION |
Document outline | OutlineDialogFragment.class | TAG_TAB_OUTLINE |
User bookmark list | UserBookmarkDialogFragment.class | TAG_TAB_BOOKMARK |
The following example shows how to display an annotations list, a document outline, and a user-defined bookmark list tabs in BookmarksDialogFragment
:
using pdftron.PDF.Tools.Utils;
var bookmarksDialog = pdftron.PDF.Dialog.BookmarksDialogFragment.NewInstance();
bookmarksDialog.SetPdfViewCtrl(mPdfViewCtrl);
List<DialogFragmentTab> tabs = new List<DialogFragmentTab>();
var annotationsTab = new DialogFragmentTab(
Java.Lang.Class.FromType(typeof(AnnotationDialogFragment)), BookmarksTabLayout.TagTabAnnotation, null, "Annotations", "Bookmarks Dialog", null);
var outlineDialog = new DialogFragmentTab(
Java.Lang.Class.FromType(typeof(OutlineDialogFragment)), BookmarksTabLayout.TagTabOutline, null, "Outline", "Bookmarks Dialog", null);
var userBookmarksDialog = new DialogFragmentTab(
Java.Lang.Class.FromType(typeof(UserBookmarkDialogFragment)), BookmarksTabLayout.TagTabBookmark, null, "User Bookmarks", "Bookmarks Dialog", null);
tabs.Add(annotationsTab);
tabs.Add(outlineDialog);
tabs.Add(userBookmarksDialog);
bookmarksDialog.SetDialogFragmentTabs(tabs);
bookmarksDialog.SetStyle((int)DialogFragmentStyle.NoTitle, Resource.Style.PDFTronAppTheme);
bookmarksDialog.Show(this.SupportFragmentManager, "bookmarks_dialog");
bookmarksDialog.AnnotationClicked += (sender, e) =>
{
bookmarksDialog.Dismiss();
};
bookmarksDialog.ExportAnnotations += (sender, e) =>
{
// handle export annotations here
bookmarksDialog.Dismiss();
};
bookmarksDialog.OutlineClicked += (sender, e) =>
{
bookmarksDialog.Dismiss();
};
bookmarksDialog.UserBookmarkClick += (sender, e) =>
{
mPdfViewCtrl.SetCurrentPage(e.PageNum);
bookmarksDialog.Dismiss();
};
The BookmarksDialogFragment
provides a flexible API for displaying only the desired child view. Any of the annotation list, document outline, or user-defined bookmark list view can be removed by omitting them from the DialogFragmentTabs
.
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales