是否可以将一些按钮放在可变行的线性或相对布局中?

Is it possible to put some Buttons in a Linear or Relative Layout in variable rows?

我只想有一种布局。在这个布局中有一个线性或相对布局,我在其中放置了一些按钮。

如果设备很小,我的按钮不适合 LinearLayout,其中一些会超出 activity 并且不可见,如下所示:

我想做一些事情,当设备屏幕很小时,额外的按钮会自动转到第二行,如下所示:

可能吗? LinearLayout 或 RelativeLayout 中是否有满足这种需求的属性?

使用网格视图。并将 Button 添加到 GridView 中。

您的另一个选择是尝试 android-flowlayout 图书馆

您可以在 运行 时间用这样的东西检查每个设备的屏幕尺寸

`

int screenSize = getResources().getConfiguration().screenLayout
//              & Configuration.SCREENLAYOUT_SIZE_MASK;
//
//      switch (screenSize) {
//      case Configuration.SCREENLAYOUT_SIZE_LARGE:
//          Do something for Large Screens
//          break;
//      case Configuration.SCREENLAYOUT_SIZE_NORMAL:
//          Do something for Normal Screens
//          break;
//      case Configuration.SCREENLAYOUT_SIZE_XLARGE:
//          Do something for XLarge Screens
//          break;
//      case Configuration.SCREENLAYOUT_SIZE_UNDEFINED:
//          Do something for Undefined Screens like televisions or something
//          break;
//      case Configuration.SCREENLAYOUT_SIZE_SMALL:
//          Do something for small Screens
//          break;
//      default:
//          Do something for default Screens if all else fails
//      }`

请原谅这些评论,但这是在 运行 时间 activity 中实现具有不同要求的不同观点的一种方式。另请注意,您可以简单地执行类似

的操作
    android:lines="1"
    android:maxLines="1"
    android:maxLength="20"

要强制 Textview 始终为一行或 maxLines 或长度为 20,请自行选择

更好的方法是为每个设备的屏幕尺寸构建一个独特的布局,以确保每件事都在正确的位置。

您只需要在您的资源中添加以下文件夹:

layout-small
layout
layout-large
layout-xlarge
layout-sw600dp
layout-sw720dp

并开始为这些屏幕中的每一个进行设计。 欲了解更多信息:supporting multiple screens