Search code examples
androidwebviewxamarinandroid-actionbarindicator

Android page numbring displayed at the bottom bar


I want to display a page numbering, like 3/10 at the bottom of my app, after swiping, the number will be 4/10. My layout is webviews that the user ban swipe between them, i want to indicate the webview current index in a bottom bar that will be updated after each swipe. basic layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    <android.webkit.WebView
        android:layout_width="match_parent"
        android:layout_height="413.3dp"
        android:id="@+id/tipsWebView"
        android:layout_marginBottom="0.0dp" />
        //bar position
</LinearLayout>

And to display different webviews i use :

adaptor.AddFragmentView((i, v, b) =>
                {
                    if(m_swipeCounter < m_links.Length)
                    {
                        m_swipeCounter++;
                    }
                    else 
                    {
                        m_swipeCounter= 0;
                    }
                    var view = i.Inflate(Resource.Layout.tab, v, false);
                    var client = new WebClient();   
                    string htmlData = client.DownloadString(m_links[m_swipeCounter]);
                    htmlData +="<link rel=\"stylesheet\" type=\"text/css\" href=\"cssInject.css\">";
                    WebView tipsWebView = view.FindViewById<WebView>(Resource.Id.tipsWebView);
                    tipsWebView.SetWebViewClient(new WebViewClient());
                    tipsWebView.Settings.JavaScriptEnabled = true;
                    tipsWebView.LoadDataWithBaseURL("file:///android_asset/", htmlData, "text/html", "", null);
                    return view; 
                    //create pager, pager adaptor to create the right webview link


                });

So the index will be based on m_swipeCounter variable.

All the best.


Solution

  • it's possible with a LinearLayout, using weights and stuff, but it'll run faster using a RelativeLayout

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <android.webkit.WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/tipsWebView"
            android:layout_alignParentTop="true"
            android:layout_above="@+id/bottomText"
            />
        <TextView
            android:id="@+id/bottomText"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:text="0/0"
            />
    </RelativeLayout>