2

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

例如:

if(!user.payedForTabletApp) DO_NOT_USE_LARGE_LAYOUT();
4

2 回答 2

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>

有关布局别名的更多示例,请参阅本教程

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

下面是一个活动示例:

int layoutResId = R.layout.main;
if (!user.payedForTabletApp) {
    layoutResId = R.layout.phone;
}
setContentView(layoutResId);
于 2012-08-23T10:42:20.023 回答
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 也是如此。

布局优化用户体验。

于 2012-08-23T10:41:13.673 回答