当有大型平板电脑可用时,是否有可能使平板电脑使用常规布局?
例如:
if(!user.payedForTabletApp) DO_NOT_USE_LARGE_LAYOUT();
答案 0 :(得分:2)
以下是解决问题的方法:
1)创建两个布局:res/layout/phone.xml
和res/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.xml
和activity_home_large.xml
这样的东西显然我不推荐这个!
然后你可以这样做:
if(!user.payedForTabletApp){
setContentView(R.layout.activity_home_normal);
}else{
setContentView(R.layout.activity_home_large);
}
但是我会考虑收取其他功能而非布局的用途。如果我在iOS上购买应用程序,我希望相同的应用程序可以在两种设备尺寸上工作 - 对于Android来说也是如此。
布局优化用户体验。