首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为电话和平板电脑组织不同代码的最佳实践

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

Stack Overflow用户
提问于 2014-11-13 07:19:43
回答 1查看 65关注 0票数 0

我正在为平板电脑改造一个现有的手机应用程序。问题是,手机和平板电脑在用户界面上有一些细微的差别。

例如,在电话中,有一个登陆页面,然后有一个带有取消按钮的登录页面,它也可以返回登陆页面。

在平板电脑上,登录片段在登陆页面上,取消按钮被移除。这意味着我已经检查了设备是否是平板电脑,如果是的话,我无法找到“取消”按钮的视图。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-13 07:44:58

平板电脑还是手机?

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

值/config.xml

代码语言:javascript
复制
<bool name="isTablet">false</bool>

值-sw600dp/config.xml

代码语言:javascript
复制
<bool name="isTablet">true</bool>

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

代码语言:javascript
复制
public static boolean IS_TABLET = false;
public void onCreate() {
    super.onCreate();
    MyApp.IS_TABLET     = getResources().getBoolean(R.bool.isTablet);
}

处理不同视图的

若要处理不同视图,请使用/res中的不同文件夹

电话视图的/layout

/layout-sw600dp用于7“平板电脑(如果7 et 10”之间没有差异,只需使用此文件夹)

/布局-sw720dp为10“片剂

处理代码

这里有两个解决方案:

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

代码语言:javascript
复制
if(MyAPP.IS_TABLET) {
   // DO something on tablet
} else {
   // Do something on phone
}

2-如果平板电脑和电话有很大的不同,创建一个新的活动/片段,其后缀如下:

HomeActvity => HomeActivityTablet并在加载此特定视图时添加一个条件。

您还可以使用不同的命名空间,这取决于给您提供最佳架构的是什么。

实例

查看一下谷歌IO应用程序源代码

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26903370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档