2017-08-29 118 views
0

我有一個手機的Android應用程序的工作,現在我想開發一個版本的平板電腦。根據我所做的研究,我只能爲此保留一個項目,我「只」必須處理不同的屏幕尺寸以及多個佈局和繪圖。平板電腦和手機佈局的活動

但是,我不清楚,如果我有例如2我的主頁佈局(每個設備一個),我必須開發2個活動?或者我可以只有一個活動,我可以檢測哪些佈局被加載,並在if/else分支中執行我的東西?

請注意,我的佈局是非常不同的,例如我使用DrawerLayout的平板電腦版本有一個側邊欄,而我不適用於手機版本。

+0

你並不需要制定每屏支持一個活動(平板電腦/手機),Android操作系統會自動選擇符合設備分辨率的相應XML,但您必須注意視圖綁定,這意味着您必須尊重視圖的視圖類型兩個佈局中的id名稱。 –

回答

1

如果我有例如我的主頁佈局(每個設備一個),我必須開發2個活動嗎?

號如果您有兩個不同版本的佈局(也許是一個在layout/,另一個在layout-sw600dp/),系統會自動選擇正確的一個給你。

或者我可以只有一個活動,我可以檢測哪些佈局被加載,並做我的東西在if/else分支?

這大概是通常所做的事情,只有你經常不需要做一個if/else無處不在。

您提到您的平板電腦佈局將使用DrawerLayout,而您的手機佈局不會。這意味着你可以這樣寫代碼:

DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer); 

if (drawer != null) { 
    // set up drawer for tablets 
} 

findViewById()調用將成功返回你的DrawerLayout當系統選擇了平板電腦的佈局,並在系統中選擇您的手機的佈局將返回null

但是,如果有,你知道存在於您的手機和平板電腦的佈局視圖,你可以直接使用它:

TextView textView = (TextView) findViewById(R.id.text); 
textView.setText("hello world"); 
相關問題