Some test text!
Xamarin / Guides / Add a custom view to a page
You can add a custom View or UIView object to a page.
CustomRelativeLayout
is a RelativeLayout
that can be nested under PDFViewCtrl
with a given page position and page number. All child views of CustomRelativeLayout
are displayed on top of PDFViewCtrl
. When PDFViewCtrl
is scrolling or zooming, CustomRelativeLayout
will adjust position and size automatically according to the app:zoomWithParent
attribute.
CustomRelativeLayout
is calculated in PDF page coordinates. In page coordinate, the origin location (0, 0) is at the bottom left corner of the PDF page. The x axis extends horizontally to the right and y axis extends vertically upward. For more information, see: understanding coordinates You can add CustomRelativeLayout
as a child view of PDFViewCtrl
in your XML layout resource file:
<pdftron.PDF.PDFViewCtrl
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/pdfviewctrl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical|horizontal" >
<pdftron.PDF.Tools.CustomRelativeLayout
android:layout_width="50dp"
android:layout_height="50dp"
app:posX="50"
app:posY="150"
app:pageNum="3"
app:zoomWithParent="true">
<!--Child views under CustomRelativeLayout-->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Custom Layout Text View"
android:textSize="24dp"
android:elevation="2dp"/>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/light_gray" />
</pdftron.PDF.Tools.CustomRelativeLayout>
</pdftron.PDF.PDFViewCtrl>
CustomRelativeLayout
, the CustomRelativeLayout
will not be removed from PDFViewCtrl
. Please remember to remove CustomRelativeLayout
manually.Alternatively, you can also add CustomRelativeLayout
from separate layout file. Here is an example where the CustomRelativeLayout
is inflated and added directly to PDFViewCtrl
.
Define an XML layout resource file containing a CustomRelativeLayout
. For example, our layout file R.layout.custom_layout_textview
shown below contains a CustomRelativeLayout
with two child views:
<pdftron.PDF.Tools.CustomRelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="50dp"
android:layout_height="50dp"
app:posX="50"
app:posY="150"
app:pageNum="3"
app:zoomWithParent="true">
<!--Child views under CustomRelativeLayout-->
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Custom Layout Text View"
android:textSize="24dp"
android:elevation="2dp"/>
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/light_gray" />
</pdftron.PDF.Tools.CustomRelativeLayout>
CustomRelativeLayout
, the CustomRelativeLayout
will not be removed from PDFViewCtrl
. Please remember to remove CustomRelativeLayout
manually.You can also add the custom layout programmatically. The code below uses CustomRelativeLayout
constructor to create a custom layout equivalent to previous examples:
TextView textView = new TextView(this); textView.setText("Custom Layout Text View"); textView.setTextSize(24);
View view = new View(this); view.setBackgroundColor(Color.LTGRAY);
customRelativeLayout.addView(view); customRelativeLayout.addView(textView); pdfViewCtrl.addView(customRelativeLayout);
CustomRelativeLayout customRelativeLayout = new CustomRelativeLayout(this, pdfViewCtrl, 50, 150, 3);
customRelativeLayout.SetZoomWithParent(true);
TextView textView = new TextView(this);
textView.Text = "Custom Layout Text View";
textView.TextSize = 24;
View view = new View(this);
view.SetBackgroundColor(Android.Graphics.Color.LightGray);
customRelativeLayout.AddView(view);
customRelativeLayout.AddView(textView);
pdfViewCtrl.AddView(customRelativeLayout);
CustomRelativeLayout
allows child views to be displayed inside PDFViewCtrl
. XML attributes for positioning CustomRelativeLayout
in PDFViewCtrl
are defined in the table below:
Attribute | Description |
---|---|
app:posX | Specifies the x-coordinate in PDF page coordinates . Default value: 0 |
app:posY | Specifies the y-coordinate in PDF page coordinates . Default value: 0 |
app:pageNum | Specifies the page number of the document that will contain this CustomRelativeLayout .Default value: 1 |
app:zoomWithParent | Specifies whether the CustomRelativeLayout will zoom with parent.Default value: true |
android:layout_width | Specifies the width of the view, it must be a positive integer in PDF page coordinates . |
android:layout_height | Specifies the height of the view, it must be a positive integer in PDF page coordinates . |
Trial setup questions? Ask experts on Discord
Need other help? Contact Support
Pricing or product questions? Contact Sales