我有一个可以运行的手机安卓应用程序,现在我想为平板电脑开发一个版本。根据我所做的研究,我只能保留一个项目,我“只”必须处理具有多个布局和绘图的不同屏幕尺寸。
然而,我不清楚,如果我的主页有两个布局(每个设备一个),我是否需要开发2个活动?或者我可以只有一个活动,我可以检测到哪个布局已加载并在if / else分支中执行我的操作?
请注意我的布局非常不同,例如平板电脑版我使用DrawerLayout有侧边栏,而我不用于手机版。
答案 0 :(得分:1)
如果我的主页有2个布局(每个设备一个),我是否需要开发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");