GridView不适合整个屏幕

时间:2018-02-19 10:01:00

标签: android gridview calendar

我为我的应用程序创建了一个自定义日历,如下所示:

enter image description here 问题是它没有填满整个屏幕的高度。

为了制作日历,我使用了一个带有自定义适配器的GridView,其中我设置了每个单元格的高度,如下所示:

int other = 56 + 30 + 50 + statusBarHeight;
currCell.getLayoutParams().height = (screenHeight - other) / MAX_ROW;

其中:

56是工具栏的高度(在布局文件中的dp中设置);

30是显示天数名称的布局的高度(在布局文件中的dp中设置);

50是底栏的高度(在布局文件中的dp中设置);

statusBarHeight是状态栏的高度,用:

计算
statusBarHeight = 0;
int statusBarId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (statusBarId > 0)
    statusBarHeight = getResources().getDimensionPixelSize(statusBarId);

screenHeight是屏幕的高度,用:

计算
DisplayMetrics metrics = new DisplayMetrics();

    ((WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE))
            .getDefaultDisplay().getMetrics(metrics);

    screenHeight = metrics.heightPixels;

MAX_ROW等于7.

另一个问题是,当我在另一部手机上试用该应用程序时,GridView仍然不适合屏幕,但方式不同。例如,图片中的手机是Honor9。在LG G4上,网格比屏幕长,而在模拟的Nexus 5X上则更短。

我正在寻找一种方法,以编程方式设置单元格的高度,使网格完美地适合每个设备上的屏幕。

提前致谢:)

0 个答案:

没有答案