LinearLayout未正确调整大小

时间:2012-06-10 20:01:53

标签: android android-layout android-widget

我有一个LinearLayout并动态添加三个LinearLayout。每个LinearLayouts都包含一个Button。按下其中一个按钮后,我想在二级LinearLayout中显示CalendarView。显示视图,但未完全显示。我附上了一个截图来显示问题: http://i.stack.imgur.com/CE9je.png

以下是添加布局的代码:

LinearLayout.LayoutParams pLayouts = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT,
        LinearLayout.LayoutParams.WRAP_CONTENT
);
hllCalendar = new LinearLayout(this);
hllCalendar.setLayoutParams(pLayouts);
hllCalendar.setId(hllCalendarID);
hllCalendar.setOrientation(LinearLayout.VERTICAL);
btCalendar = {some other code}
hllCalendar.addView(btCalendar);
hllComponents.addView(hllCalendar);

以下是添加CalendarView的代码:

LinearLayout.LayoutParams pCalendar = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT,
        LinearLayout.LayoutParams.WRAP_CONTENT
);
CalendarView cal = new CalendarView(this);
cal.setLayoutParams(pCalendar);
cal.setOnDateChangeListener(this);
hllCalendar.addView(cal);

关于如何让日历完全可见的任何建议?

以下是为方便起见而动态创建的布局:

hllComponents pLayouts
-hllCalendar pLayouts
--btCalendar
--CalendarView pCalendar
-hllStartTime pLayouts
--btStartTime
-hllEndTime pLayouts
--btEndTime

问题与this post中的问题相同。

1 个答案:

答案 0 :(得分:0)

尝试调用父布局的requestLayout()。

这将在UI的消息循环上发布“重新布局”消息。这将在添加日历后计算布局的新大小,从而在屏幕上完全绘制它。