在我的应用程序的某些部分,我需要明确设置布局的高度。
我有这个代码:
ListView.LayoutParams lp = new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, getListViewHeight(questionsList));
ListView.LayoutParams.WRAP_CONTENT);
final LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
final ListView questionView = new ListView(activity);
questionView.setId(generateViewId());
QuestionAdapter questions = new QuestionAdapter(activity, new ArrayList<TdcQuestion>(Arrays.asList(questionsList)));
questionView.setAdapter(questions);
questionView.setLayoutParams(lp);
layout.setLayoutParams(ll);
layout.addView(questionView);
lp布局计算高度的方法是:
private static int getListViewHeight(TdcQuestion[] questions)
{
int height = (questions.length - 1) * 7; // Suma al alto las separaciones entre los ítemes de la lista
for (int i = 0; i < questions.length; i++) {
String tipo = questions[i].getType().getName();
if (tipo.equals("RADIO"))
height += 212;
else if (tipo.equals("CHECK"))
height += 212;
else if (tipo.equals("NUM"))
height += 265;
else if (tipo.equals("TEXT"))
height += 433;
else if (tipo.equals("PHOTO"))
height += 85;
if (questions[i].hasPhoto())
height += 182;
}
return height;
}
问题是,在我的三星 S6 中,它以这种方式完美显示:
但是,在客户的手机(Alcatel One Touch Mini S)中,显示方式如下:
标签为“Modelo de BRs”的按钮在下方出现了很多像素。
我已经创建了一个与客户手机屏幕尺寸相同的模拟器设备,并且发生了同样的情况,因此,这与屏幕尺寸直接有关。我该如何解决?
还有一个事实。我的手机是 Android 5.1.1,而客户的手机是 Android 4.2.2 (API 18),但应用程序正在为 API 15 编译以使其更兼容。