当有一个大的可用时,是否有可能使平板电脑使用常规布局?
例如:
if(!user.payedForTabletApp) DO_NOT_USE_LARGE_LAYOUT();
以下是解决问题的方法:
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>
有关布局别名的更多示例,请参阅本教程。
3)更新onCreate()
活动中的功能或onCreateView()
片段中的功能以使用适当的布局。
下面是一个活动示例:
int layoutResId = R.layout.main;
if (!user.payedForTabletApp) {
layoutResId = R.layout.phone;
}
setContentView(layoutResId);
对此的简短回答是否定的。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 也是如此。
布局优化用户体验。