Rock Mobile Docs

Bible Browser

Inherits from Xamarin.Forms.ContentView

The BibleBrowser control provides a way for you to build a nice interface for the user to browse through the Bible. How that browser looks and behaves is up to you. The intended purpose is to let the user pick the chapter and book they want to read and then let them navigate to the next/previous chapters or books via interface elements.

Note

Deep links to the YouVersion Bible app are supported by Rock Mobile, which may provide a better experience than this native Bible Browser control. We'd recommend this option unless you need more control over the experience with more native app integration.Find out more here ->

The primary purpose of this control is to handle much of the logic in regards to navigating within the Bible for you. As an example, you need to know when to show and hide the "move next" and "move previous" buttons. Building in all the logic to determine if there is another book or chapter after the current one is tedious. So we did it for you!

Properties

PropertyTypeDescription
ContentViewThe content that will be displayed inside the browser. This is the default property so it can be omitted when creating child elements. Defaults to null.  
ReferencestringA single Bible reference, should not contain any verse information. Example: Genesis 12. This would result in the browser starting on Genesis 12 and then allowing the user to browse to different books and chapters from there.  
TranslationstringThe translation of the Bible to display. ESV, NLT or MSG are supported. Defaults to ESV.  

Default Content

This control provides no default content so you must provide some content of your own for it to be of any use.

There are some special bindings available for your custom content. In addition to the normal bindings (such as PushPage) that you normally have available, there are a few additional ones you can use. All of these additional bindings are inside the BibleBrowser property.

PropertyTypeDescription
ReferencestringThe current reference that should be displayed in the browser.
ReadingReading  The internal state data of the Bible content to be displayed. If using Bible Reader control as children they should be bound to this property.  
CurrentBookstring  The current book that is displayed in the browser. read-only
CurrentChapterint  The current chapter number that is displayed in the browser. read-only
HasPreviousBookOrChapterbooltrue if there is a book or chapter before the currently displayed chapter.  
HasPreviousBookbooltrue if there is a book before the currently displayed chapter.  
HasPreviousChapterbooltrue if there is a chapter in the current book before the currently displayed chapter.  
HasNextBookOrChapterbooltrue if there is a book or chapter after the currently displayed chapter.  
HasNextBookbooltrue if there is a book after the currently displayed chapter.  
HasNextChapterbooltrue if there is a chapter in the current book after the currently displayed chapter.  
ShowPickerCommandICommandExecute this command to show the book and chapter picker to the user for them to select a new reference to read or listen to.
ShowPreviousBookOrChapterCommandICommandExecute this command to update the reference to move to the previous book or chapter. If a previous chapter is available it will be used, otherwise the previous book will be used.
ShowPreviousBookCommandICommandExecute this command to update the reference to move to the previous book.
ShowPreviousChapterCommandICommandExecute this command to update the reference to move to the previous chapter.
ShowNextBookOrChapterCommandICommandExecute this command to update the reference to move to the next book or chapter. If a next chapter is available it will be used, otherwise the next book will be used.
ShowNextBookCommandICommandExecute this command to update the reference to move to the next book.
ShowNextChapterCommandICommandExecute this command to update the reference to move to the next chapter.

Example

<Rock:BibleBrowser Reference="Genesis 1">
    <StackLayout>
        <Label Text="{Binding BibleBrowser.Reference}"
            StyleClass="text-interface-strongest, title1, bold"
            HorizontalOptions="Center">
            <Label.GestureRecognizers>
                <TapGestureRecognizer Command="{Binding BibleBrowser.ShowPickerCommand}" />
            </Label.GestureRecognizers>
        </Label>
    
        <Grid ColumnDefinitions="*,*,*">
            <Rock:Icon IconClass="chevron-left"
                StyleClass="text-interface-stronger"
                IconFamily="MaterialDesignIcons"
                FontSize="36"
                Command="{Binding BibleBrowser.ShowPreviousBookOrChapterCommand}"
                IsVisible="{Binding BibleBrowser.HasPreviousBookOrChapter}"
                HorizontalOptions="Start"
                VerticalOptions="Center"
                Grid.Column="0" />
                      
            <Rock:Icon IconClass="chevron-right"
                StyleClass="text-interface-stronger"
                IconFamily="MaterialDesignIcons"
                FontSize="36"
                Command="{Binding BibleBrowser.ShowNextBookOrChapterCommand}"
                IsVisible="{Binding BibleBrowser.HasNextBookOrChapter}"
                HorizontalOptions="End"
                VerticalOptions="Center"
                Grid.Column="2" />
        </Grid>
        
        <Rock:BibleReader Reading="{Binding BibleBrowser.Reading}"
            ShowReference="false"
            Margin="0,12,0,0" />
    </StackLayout>
</Rock:BibleBrowser>