平板电脑和手机布局的活动

时间:2017-08-29 16:44:46

标签: android android-layout

我有一个可以运行的手机安卓应用程序,现在我想为平板电脑开发一个版本。根据我所做的研究,我只能保留一个项目,我“只”必须处理具有多个布局和绘图的不同屏幕尺寸。

然而,我不清楚,如果我的主页有两个布局(每个设备一个),我是否需要开发2个活动?或者我可以只有一个活动,我可以检测到哪个布局已加载并在if / else分支中执行我的操作?

请注意我的布局非常不同,例如平板电脑版我使用DrawerLayout有侧边栏,而我不用于手机版。

1 个答案:

答案 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");