我正在为平板电脑改造一个现有的手机应用程序。问题是,手机和平板电脑在用户界面上有一些细微的差别。
例如,在电话中,有一个登陆页面,然后有一个带有取消按钮的登录页面,它也可以返回登陆页面。
在平板电脑上,登录片段在登陆页面上,取消按钮被移除。这意味着我已经检查了设备是否是平板电脑,如果是的话,我无法找到“取消”按钮的视图。
这对我来说似乎很讨厌,我想知道是否有更好的方法来做到这一点。谢谢。
发布于 2014-11-13 07:44:58
平板电脑还是手机?
首先,你应该知道你在哪个设备上。一种优雅的方法(在我看来)是在config.xml中声明资源:
值/config.xml
<bool name="isTablet">false</bool>值-sw600dp/config.xml
<bool name="isTablet">true</bool>然后扩展应用程序并保持运行应用程序的设备类型:
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-视图之间的变化很小:保持相同的活动/片段,并添加如下条件
if(MyAPP.IS_TABLET) {
// DO something on tablet
} else {
// Do something on phone
}2-如果平板电脑和电话有很大的不同,创建一个新的活动/片段,其后缀如下:
HomeActvity => HomeActivityTablet并在加载此特定视图时添加一个条件。
您还可以使用不同的命名空间,这取决于给您提供最佳架构的是什么。
实例
查看一下谷歌IO应用程序源代码
https://stackoverflow.com/questions/26903370
复制相似问题