我知道你可以通過聲明不同的layout
文件夾(如layout-large
或layout-xlarge
)來擁有不同的UI元素。但是,我不想每次更改我的應用程序界面時都更新兩個單獨的文件。如何僅在Android上的大型設備上使用按鈕?
是否有任何其他方式有一個小屏幕上只有visibility="gone"
的按鈕和大屏幕上的正常能見度?
我知道你可以通過聲明不同的layout
文件夾(如layout-large
或layout-xlarge
)來擁有不同的UI元素。但是,我不想每次更改我的應用程序界面時都更新兩個單獨的文件。如何僅在Android上的大型設備上使用按鈕?
是否有任何其他方式有一個小屏幕上只有visibility="gone"
的按鈕和大屏幕上的正常能見度?
我分離按鈕進入2個XML文件 - 一個在layout-large
有visibility="visible"
,一個在layout
有visibility="gone"
,然後包括我的佈局/ home.xml文件的按鈕。有效。
您可以將它分成兩個XML佈局文件,但是必須同時維護兩個XML佈局文件。您可以通過使用一個佈局文件將其抽象出來,然後爲按鈕定義針對這兩種平板電腦的樣式。
我會將它設置爲GONE並將其更改爲代碼。這樣你就沒有兩個佈局文件。
但是,我不會使用布魯默的方法getConfiguration().screenLayout
。剷鬥不再是處理不同屏幕尺寸的最佳方式。 Dianne Hackborn explains why in a post,但它歸結爲:
基於開發者的經驗,到目前爲止,我們並不認爲這 有限的設定畫面尺寸桶爲開發人員提供他們需要 在適應日益多樣化的一切Android設備形狀爲 和尺寸。主要問題是,存儲桶 之間的邊界可能並不總是對應於可供消費者使用的設備或對應用程序的特定需求的 。
相反,你應該使用他們的新的數字值 - 大概sw600dp
7" 平板電腦和sw720dp
10" :
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
if (getResources().getBoolean(R.bool.sw600dp)) {
((Buton)findViewById(R.id.mybutton)).setVisibility(VISIBLE);
}
}
關於水桶的好處。既然你的做法是正確的,涵蓋了同樣的方法,我已經將其移除了。 – Blumer 2013-03-27 03:18:01
這是最簡單的答案 - 關鍵在於你只有單獨的文件對於按鈕,而不是整個活動佈局或類似的東西。如果你需要重複這種行爲,那麼我認爲你可以在樣式聲明中包含可見性。 – atw13 2013-03-26 22:50:17