在Android文档中:“支持多个屏幕”Google描述了如何针对不同的屏幕尺寸采用不同的布局方案:
res/layout/my_layout.xml
res/layout-small/my_layout.xml
res/layout-large/my_layout.xml
res/layout-large-land/my_layout.xml
res/layout-xlarge/my_layout.xml
...
问题在于,对于每个布局都会达到相同的代码:在'onCreate'中我正在使用:
的setContentView(R.layout.my_layout);当然,将根据屏幕尺寸调用正确的布局(xml)
我想要的是xlarge和小屏幕将具有非常不同的布局,在这种情况下,Java代码将是非常不同的。我的问题是如何在代码中区分这些情况?我是否必须使用if / else或者android可以自动执行吗?
答案 0 :(得分:2)
我的问题是如何在代码中区分这些情况?我是否必须使用if / else或者android可以自动执行吗?
你必须“使用一些if / else”,如下所示:
if (getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_LARGE)==Configuration.SCREENLAYOUT_SIZE_LARGE) {
// yes, we are large
}
else {
// no, we are not
}
答案 1 :(得分:0)
我希望在较小的屏幕尺寸上启动时打开导航抽屉,并在平板电脑上启动时保持关闭状态。
这是我最终得到的代码:
if(getResources().getConfiguration().smallestScreenWidthDp < 600){
//Open the navigation drawer automatically
((DrawerLayout) findViewById(R.id.drawer_layout)).openDrawer(GravityCompat.START);
}else{
//Don't do anything
}