我正在调整适用于平板电脑的现有手机应用程序。问题是手机和平板电脑之间的UI存在一些细微差别。
例如,在手机上,有一个目标网页,然后是一个带有取消按钮的登录页面,该按钮也会返回到目标网页。
在平板电脑上,登录片段位于着陆页上,取消按钮被删除。这意味着我已经检查了设备是否是平板电脑,如果是,我不知道取消按钮的视图。
这对我来说似乎很烦人,我想知道是否有更好的方法来做到这一点。感谢。
答案 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源代码