Table 行 Child 基于屏幕尺寸的计数

Table Row Child Count Based on Screen Size

我有 100dp 宽度和 120dp 高度的卡片,当应用程序启动时,我向每个 table 行添加 3 张卡片(我根据我的卡片总数创建 table 行数想补充)。在 phone 上这看起来不错,但是在 tablets 上有很多空缺 space 因为每行 children 的数量(在本例中为 3)不是动态填充的可用屏幕 space。当然,拉伸列只会使卡片变宽(imo 看起来很尴尬)。有没有一种方法可以简单地将我的卡片添加到布局中,让它根据屏幕尺寸自动确定 columns/row child 计数?

您可以使用 window 管理器

获取屏幕尺寸
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
final DisplayMetrics displayMetrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

找到需要加载的卡片数量。

最好将卡片的宽度设置为与屏幕宽度成正比 例如

int padding = 5;
float cardwidth = width*0.25 - padding; // card with 25% width of screen   

      int count = width /cardwidth ; //