为手机和平板电脑组织不同代码的最佳实践

时间:2014-11-13 07:19:43

标签: android

我正在调整适用于平板电脑的现有手机应用程序。问题是手机和平板电脑之间的UI存在一些细微差别。

例如,在手机上,有一个目标网页,然后是一个带有取消按钮的登录页面,该按钮也会返回到目标网页。

在平板电脑上,登录片段位于着陆页上,取消按钮被删除。这意味着我已经检查了设备是否是平板电脑,如果是,我不知道取消按钮的视图。

这对我来说似乎很烦人,我想知道是否有更好的方法来做到这一点。感谢。

1 个答案:

答案 0 :(得分:3)

平板电脑还是手机?

首先,你应该知道你是哪种设备。一种优雅的方式(在我看来)是在config.xml中声明一个资源:

值/ config.xml中

<bool name="isTablet">false</bool>

值-sw600dp / config.xml中

<bool name="isTablet">true</bool>

然后扩展Application并保持设备的类型运行应用程序:

public static boolean IS_TABLET = false;
public void onCreate() {
    super.onCreate();
    MyApp.IS_TABLET     = getResources().getBoolean(R.bool.isTablet);
}

处理不同视图

要处理不同视图,请使用/ res

中的不同文件夹 电话视图的

/布局
/ layout-sw600dp for 7&#34;平板电脑(如果7 et 10和#34之间没有区别,你可以使用这个文件夹;)
/ layout-sw720dp for 10&#34;平板电脑

处理代码

这里有两个解决方案:

1-视图之间的变化很小:保持相同的活动/片段并添加一些条件,如

if(MyAPP.IS_TABLET) {
   // DO something on tablet
} else {
   // Do something on phone
}

2-如果平板电脑和手机非常不同,请创建一个带有后缀的新活动/片段,如:
HomeActvity =&gt; HomeActivityTablet 并在加载此特定视图时添加条件。

您还可以使用不同的命名空间,具体取决于为您提供最佳体系结构的内容。

<强>为例

查看Google IO app's源代码