我必须动态添加多个TextViews
。
每个TextView
应填满屏幕,下一个TextView
应添加到第一个视图下方,甚至应该占据整个屏幕。
我已经使用以下代码来确定屏幕高度和运行时。
代码段
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
for(int i=0;i<name.size();i++)
{
text = new TextView(getApplicationContext());
text.setText(class.get(i));
text.setTextColor(Color.parseColor("#000000"));
text.setLayoutParams(new LinearLayout.LayoutParams(width, height));
text.setGravity(Gravity.CENTER);
text.setTextSize(40);
text.setClickable(true);
LL.addView(text);
}
结果:
第一个视图占据整个屏幕并延伸到下一个屏幕。
当第二个视图添加到LinearLayout
时,小差距会留在顶部。
只有屏幕截图才能理解这种情况。
截图:
慢慢地,这些屏幕向下移动。它们的高度增加了约30dp。如何使用DisplayMetrics获得屏幕的确切高度和宽度。
修改
即使使用this Answer屏幕占据比其高度高30dp
答案:
计算屏幕宽度和高度后,从中减去操作栏的高度。
没有提到这一点。既不在这里也不在那个重复的问题
答案 0 :(得分:0)
使用LinearLayout.LayoutParams(LinearLayout.match_parent, LinearLayout.match_parent)
代替新的LinearLayout.LayoutParams(width, height)
并制作TextView
对象local
而不是global
TextView text = new TextView(getApplicationContext());