【问题标题】:Control tablet / phone layout on 3.2+在 3.2+ 上控制平板电脑/手机布局
【发布时间】:2011-10-31 21:11:18
【问题描述】:
3.2 引入了一种创建布局的新方法...通过在 res 文件夹中使用 layout-swXXXdp。
问题是它控制 dp 中 SmallestWidth 使用的布局。这很好,但是如果您有一台 1024x600 的平板电脑和一台 1024x768 的平板电脑,就会出现问题。我的应用程序仅是横向的。它是一个gridview,一行中有一定数量的项目。问题是我需要gridview根据高度分辨率调整一行中有多少项目。所有 1024 像素的屏幕在 gridview 行中应该有 5 个项目,而所有 1280 像素的平板电脑应该在 gridview 行中有 6 个项目。它不应该基于宽度,因为这样 gridview 会被压扁。我怎样才能做到这一点? (我的布局选择基于高度,而不是宽度)
【问题讨论】:
标签:
android
layout
gridview
height
width
【解决方案1】:
请试试这个
获取显示的高度和宽度
Display display = ((WindowManager)getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
检查GridView声明后的高度并相应设置列数
例如
GridView gridView = (GridView)findViewById(R.id.app_gridview);
if(height <= 1024){
gridView.setNumColumns(5);
}else {
gridView.setNumColumns(6);
}
我认为这会解决问题