Xamarin.Forms Views介紹(五)
SearchBar使用
SearchBar提供一個搜尋框,方便使用者實現搜尋功能。
SearchBar提供屬性
- CancelButtonColor :設定Cancel顏色。
- Placeholder :SearchBar預設顯示文字,Text為空時顯示。
- Text :SearchBar輸入的文字。
- SearchCommand :用於Data Binding。
- SearchCommandParameter :用於SearchCommand的引數。
SearchBar提供事件
- SearchButtonPressed :使用者按下搜尋按鈕時觸發。
- TextChanged :Text屬性改變時觸發該事件。
具體使用不做介紹,實際情況會結合ListView來顯示搜尋結果,SearchCommand和SearchCommandParameter兩個屬性又涉及資料繫結相關知識,故先跳過。
WebView使用
提供簡易瀏覽器功能來訪問Html頁面,可以是網路頁面也可以是本地Html檔案或任何通過WebView檢視的文件,也可以直接顯示Html字串。WebView不支援多點觸碰手勢,無法縮放網頁。
WebView屬性
- CanGoBack :返回bool型別,表示當前頁面是否可以返回到上一頁。
- CanGoForward :返回bool型別,表示當前頁面是否可以跳轉到下一頁。
-
Source :WebViewSource型別,表示WebView顯示資源。
顯示網路頁面:
指定WebView的Source屬性為要顯示的頁面地址(必須是完整的URL地址,包含協議)。
<WebView Source="https://www.baidu.com" />
執行iOS專案,網頁無法顯示。檢視應用程式輸出NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
,解決方案,修改'info.plist'檔案增加如下節點。
對應xml節點為:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
詳情檢視:http://www.jianshu.com/p/b671d2ee4458
藉助HtmlWebViewSource
顯示Html字串,顯示一個Html font元素:
webView.Source = new HtmlWebViewSource()
{
Html = "<font size=\"3\" face=\"Times\">This is another paragraph.</font>"
};
顯示本地Html檔案:將Html檔案和相關的CSS檔案、圖片等複製到平臺專案中(不是PCL專案),iOS新增到Resources目錄下設定Build Action 為BundleResource,Android新增到Asset目錄下設定Build Action為AndroidAsset,Windows Phone賦知道專案跟目錄設定Build Action為Content。通過
DependencyService
獲取Html檔案內容並賦值給HtmlWebViewSource的Html屬性,同時指定HtmlWebViewSource的BaseUrl屬性。iOS通過NSBundle.MainBundle.BundlePath
獲取,Android指定為"file:///android_asset/"
,Windows Phone指定為""
。檔案讀取涉及到Platform-specific API calls 相關知識先不做介紹。
WebView方法
- GoBack :返回到上一頁。
- GoForward :跳轉到下一頁。
-
Eval :呼叫javascript方法。
WebView呼叫JavaScript示例:
修改佈局程式碼:
<StackLayout>
<Button x:Name="button" Text="call javascript" HorizontalOptions="Center" VerticalOptions="Start"/>
<WebView x:Name="webView" HeightRequest="1000" WidthRequest="1000" />
</StackLayout>
增加CS程式碼:
webView.Source = new HtmlWebViewSource()
{
Html = "<html>\n <script>\n function buttonClick(){\n alert(\"clicked\");\n }\n </script>\n <head>\n <title>Html Title</title>\n </head>\n " +
"<body>\n <h1>Xamrin.Forms</h1>\n <button type=\"button\" onClick=\"buttonClick()\">clicked me</button>\n </body>\n</html>"
};
button.Clicked += (sender, e) =>
{
webView.Eval("buttonClick()");
};
執行效果:
當WebView包含在StackLayout 或者RelativeLayout佈局內時必須指定WebView的HeightRequest和WidthRequest屬性,否則WebView將無法顯示。
WebView事件
- Navigated :頁面跳轉結束時觸發。
- Navigating :頁面跳轉開始時觸發。
事件不多做介紹。
相關文章
- Redis元件介紹(五)Redis元件
- 自我介紹+軟工五問。軟工
- 五種IO模型介紹和對比模型
- Sql最佳化(五) hint(提示)介紹SQL
- Jenkinsant介紹(學習筆記五)Jenkins筆記
- TiKV 原始碼解析(五)fail-rs 介紹原始碼AI
- 程式間的五種通訊方式介紹
- oracle五大程式和server process介紹OracleServer
- Java 語法介紹(五):條件控制(轉)Java
- OpenGL Android課程五:介紹混合(Blending)Android
- MySQL檢視版本號的五種方式介紹MySql
- CoreImage濾鏡效果及API引數介紹(五)API
- 軟工作業1:自我介紹+軟工五問軟工
- 程式間的五種通訊方式介紹-詳解
- 介紹五個很實用的IDEA使用技巧Idea
- celery筆記五之訊息佇列的介紹筆記佇列
- FreeSql 新功能介紹:貪婪載入五種方法SQL
- DML ViewsView
- 介紹
- 【知識分享】五個常見的web伺服器介紹Web伺服器
- 簡單介紹一下Java常用的五大框架!Java框架
- python中的五種異常處理機制介紹Python
- ORACLE函式介紹第五篇 分析函式簡述Oracle函式
- Xamarin.Forms教程開發Xamarin.Forms應用程式需要的工具ORM
- LAMP架構介紹、MYSQL介紹、安裝LAMP架構MySql
- Adobe Illustrator的基礎工具介紹-第五期
- Redis叢集方案怎麼做?大牛給你介紹五種方案!Redis
- iOS 11開發教程(五)iOS11模擬器介紹二iOS
- 第五部分:Intellj IDEA外掛介紹IntelIdea
- 8.1.1 V$ ViewsView
- 8.1.2 GV$ ViewsView
- Parallel query & viewsParallelView
- External Views (33)View
- Overview of Views (174)View
- php介紹PHP
- CSRedisCore 介紹Redis
- BitMap介紹
- GeoServer介紹Server