我有100 on宽度和120 on高度的卡片,当应用程序启动时,我向每个表行添加3张卡片(我根据要添加的卡片总数创建表行数)。在电话上,这看起来很好,但是在平板电脑上有大量的开放空间,因为每行的子行数(在本例中为3)并不是动态的,无法填充可用的屏幕空间。当然,伸展柱子只会使卡片变宽(而国际海事组织看上去非常尴尬)。是否有一种方法可以简单地将我的卡片添加到布局中,并让它根据屏幕大小自动确定列/行子计数?
发布于 2017-05-26 16:58:21
您可以使用窗口管理器获得屏幕大小。
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 ; // https://stackoverflow.com/questions/44206592
复制相似问题