Android中是否有自然包装内容的布局?
我显然可以尝试以编程方式测量有多少空间,但我宁愿尽可能地避免这种情况。
这是一个简单的图表。在我的代码中,所有的ImageView都有48dp的固定宽度。显然我不知道会有多少列,否则我会使用表视图或其他东西,所以我正在寻找一些可以在屏幕上显示时自然换行的东西。
高密度屏幕
| | |
| ImageView1 | ImageView2 |
| | |
中密度屏幕
| |
| ImageView1 |
| |
--------------
| ImageView2 |
| |
| |
答案 0 :(得分:0)
您可以使用GridLayout
并使用以下命令在不同的设备密度上为此指定不同的列数:
GridLayout mGridLayout = (GridLayout) findViewById(R.id.myGridLayoutId);
// Do some check of device density and based on result do
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
....
if(mDensity == metrics.DENSITY_MEDIUM){
mGridlayout.setColumnCount(1);
}else if(mDensity == metrics.DENSITY_HIGH){
mGridlayout.setColumnCount(2);
}
等
请参阅http://developer.android.com/reference/android/util/DisplayMetrics.html
但是没有像Android中的FlowLayout那样可以在Java Swing中使用