【问题标题】:Android: Wrap Content naturally in a linear layout or relative layout etcAndroid:以线性布局或相对布局等自然地包装内容
【发布时间】:2014-08-20 23:43:38
【问题描述】:

Android 中是否有可以自然包装内容的布局?

我显然可以尝试以编程方式测量有多少空间,但我宁愿尽可能避免这种情况。

这是一个简单的图表。在我的代码中,所有 ImageView 的固定宽度为 48dp。显然我不知道会有多少列,否则我会使用表格视图或其他东西,所以我正在寻找可以在屏幕上显示后自然换行的东西。

高密度屏幕

|            |            |
| ImageView1 | ImageView2 |
|            |            |

中密度屏幕

|            |          
| ImageView1 | 
|            |
--------------
| ImageView2 |  
|            |
|            |           

【问题讨论】:

  • 我认为 android 中没有类似的东西。但是,Romain Guy 在使用您描述的技术并且工作正常的演示文稿期间做了其​​中一个 LayoutOut。你可以谷歌那个视频
  • 试一试,似乎很有希望

标签: android android-layout android-linearlayout android-relativelayout


【解决方案1】:

您可以使用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中使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    相关资源
    最近更新 更多