2014-10-20 22 views
0

我有一個用例,在我的Web服務器上給出了一個像example.com/code/abcd12這樣的URL,我想在我的Android應用程序中顯示它的內容。內容通常包括表格,按鈕,文字和圖片。我可以在Android上渲染通過API接收的動態佈局嗎?

現在,我正在使用webview來做到這一點。但我想知道是否讓我的API更有意義返回Android XML佈局。 (讓我們假設我們可以將HTML元素轉換爲服務器端的Android元素)。

  • 能這樣的佈局文件中使用setContentView(R.layout.layout_from_api);
  • 加載它是值得的?解析和加載原生布局的速度是否快於Web視圖呈現HTML和應用CSS類?

回答

1

理論上你可以。而且我還有一個項目,管理員在服務器中更改應用程序表單,並在客戶端設備中更新表單。要完成此操作,您要執行的操作是:

1.同意使用哪些窗口小部件支撐在所述設計中,

2.使用的格式,容易地將XML屬性傳送到客戶端

3.Write解析器可以解析來自服務器的佈局設計響應,並將其充氣到圖。

完成所有這些後,您可以在代碼中使用setContentView()

+0

@Felipe指出我無法使用setContentView(),因爲佈局在編譯時可用。那麼你是怎麼做到的。我認爲它不像解析xml文本那樣簡單,並將它作爲參數傳遞。 – Bornfree 2014-10-20 12:04:27

+0

實際上,在這種情況下,您可以使用setContentView(),但不能使用findViewById()訪問元素。您需要在呈現它們時創建對小部件的引用。 – 2014-10-20 12:11:31

+0

的確,我只是通過爲所有小部件創建對象並在解析響應 – insomniac 2014-10-20 12:17:07

1

這樣的佈局文件可以使用 加載setContentView(R.layout.layout_from_api);

不,這是不可能的......在XML佈局應在編譯時(當R類別的引用將被創建)

它是值得的解析?分析和加載原生布局的速度是否快於webview呈現HTML和應用CSS類?

我認爲這是一個好主意,因爲用戶體驗會更好 - 用戶總是更喜歡本地小部件。

但是您的實現不會很簡單:您需要創建一個解析器,該解析器將採用XML文件並呈現在那裏描述的小程序。這不是不可能的,考慮一下。

相關問題