在平板电脑上强制手机布局

时间:2012-08-23 10:28:12

标签: android tablet

当有大型平板电脑可用时,是否有可能使平板电脑使用常规布局?

例如:

if(!user.payedForTabletApp) DO_NOT_USE_LARGE_LAYOUT();

2 个答案:

答案 0 :(得分:2)

以下是解决问题的方法:

1)创建两个布局:res/layout/phone.xmlres/layout/tablet.xml
2)创建布局别名:
   2.1) res/layout/main.xml - > res/layout/phone.xml
   2.2) res/layout-large/main.xml - > res/layout/tablet.xml
   2.3) res/layout-sw600dp/main.xml - > res/layout/tablet.xml

别名我的意思是这样的:

<resources>
    <item name="main" type="layout">@layout/phone</item>
</resources>

有关布局别名的更多示例,请参阅this tutorial

3)更新活动中的onCreate()函数或片段中的onCreateView()函数以使用适当的布局。

以下是活动的示例:

int layoutResId = R.layout.main;
if (!user.payedForTabletApp) {
    layoutResId = R.layout.phone;
}
setContentView(layoutResId);

答案 1 :(得分:1)

对此的简短回答是否定的。 Android为您处理资源系统。

您可以在布局文件夹中提供两种不同的布局文件。

activity_home_normal.xmlactivity_home_large.xml这样的东西显然我不推荐这个

然后你可以这样做:

if(!user.payedForTabletApp){
    setContentView(R.layout.activity_home_normal);
}else{
    setContentView(R.layout.activity_home_large);
}

但是我会考虑收取其他功能而非布局的用途。如果我在iOS上购买应用程序,我希望相同的应用程序可以在两种设备尺寸上工作 - 对于Android来说也是如此。

布局优化用户体验。