我为不同的屏幕尺寸和设备使用不同的布局。我使用带有特定布局文件夹的片段。这个概念很棒,对于具有大屏幕的平板电脑和设备,我在 layout-sw600dp中放置了一个布局文件,Android 设法在不同的设备上提供正确的布局。
困扰我的是:如何找出代码中使用的布局。对于不同的布局,我的片段需要稍微不同的代码。
一般来说,在我的片段/活动中分离自定义布局编程逻辑的最佳实践是什么?
我现在的方法有点老套,与不同的布局文件夹不同步。
private boolean isTabletDevice() {
if (android.os.Build.VERSION.SDK_INT >= 11) { // honeycomb
// test screen size, use reflection because isLayoutSizeAtLeast is
// only available since 11
Configuration con = getResources().getConfiguration();
try {
Method mIsLayoutSizeAtLeast = con.getClass().getMethod("isLayoutSizeAtLeast", int.class);
Boolean r = (Boolean) mIsLayoutSizeAtLeast.invoke(con, 0x00000004); // Configuration.SCREENLAYOUT_SIZE_XLARGE
return r;
} catch (Exception x) {
x.printStackTrace();
return false;
}
}
return false;
}
接着
if(isTabletDevice()) {
//findViewById(R.id.onlyInTabletLayoutButton);
}else{
//
}