2013-05-20 122 views
2

(所有我對我的英文不好對不起首先...)的Android幾乎相同的代碼,以適應不同的佈局

如題,我知道下面的佈局(一個或多個)不同的屏幕匹配:

res/layout/main_activity.xml For handsets (smaller than 600dp available width) 
res/layout-sw600dp/main_activity.xml For 7」 tablets (600dp wide and bigger) 
res/layout-sw720dp/main_activity.xml For 10」 tablets (720dp wide and bigger) 

在我的APP中,我使用ViewPagerAdapter來管理我的內容。

我的電話設備3頁流量:

enter image description here

和當然,用戶可以在同一時間只能看到1頁。現在

,我想爲7" 設定位不同的佈局平板電腦:

enter image description here

我想提出的WebView到左的佈局,並使其從ViewPagerAdapter隔離, 使它將所有的時間保持可見。

和其他2頁將在布圖設計權利放,並使其充當ViewPager(可向左滑動/右)。

佈局無線的兩個版本將使用相同的代碼進行管理,但正如您所看到的,頁面流程有一點不同。所以我必須做一些改變來歸檔我的目標。

這可能嗎?

+0

http://developer.android.com/guide/practices/tablets-and-handsets.html 請參閱本 –

回答

0

爲了以儘可能少的努力實現佈局,您可能需要使用嵌套片段:無論您使用哪種設備,每個ViewPager面板都將由「智能」容器Fragment處理。

Nested fragments description on "Android developers"

容器片段處理,其中當創建視圖,根據需要通過檢查片段/瀏覽次數的id存在於當前加載的佈局和創建/附接的片段的片段應該被加載的邏輯。

例如,在Android手機上,第一個面板的佈局可能只包含一個R.id.title,而不是R.id.list標識符:容器片段可以通過檢查findViewById(R。 id.list)爲空並僅創建標題片段(在平板電腦上的結果不會爲空)。

正如你所看到的,因爲正確的佈局文件是由Android的自動加載,你並不需要實現多邏輯:)

剩下的工作就是改變由ViewPager顯示的頁數的唯一任務具體取決於您的屏幕(手機/平板電腦)的幾何形狀,您可以在您的Activity的onCreate方法中進行操作。

請記住,如果您的應用的方向因設備旋轉而發生更改,最後一步可能會非常棘手。

希望它可以幫助

相關問題