Android CalendarView减慢了布局

这真让我抓狂。 我的Android应用程序中有一个片段,它使用RelativeLayout进行布局。 问题是,由于某种原因,渲染需要很长时间,大约5秒钟才能在屏幕上加载大约4个元素。

其中一个元素是CalendarView,当我删除它时,它会恢复到正常的速度(即:即时)。 我想这个问题与我要求Android公布它的方式有关,一定不是很有意义,也不是效率低下的东西。

这是XML文件:

       

我已经尝试了大量不同的布局选项,但删除日历似乎是唯一有所作为的东西。

任何见解将不胜感激。 谢谢

我也遇到过这个问题,包括相对布局和线性布局。 它似乎与布局无关。

这是一个看错误的例子,只是简单的布局,根本没有代码:

     

现在只需将线性布局高度更改为:

 android:layout_height="match_parent" 

有了这个改变,问题就消失了,至少在我的三星Galaxy Tab 2中

所以它似乎更“空间”相关,但我仍然不确定为什么会出现这个问题。 而且我没有在谷歌搜索“calendarview slow”中find任何其他有趣的结果……

编辑 让我们看看我们是否能find一个小小的赏金答案

我花了几个小时才find答案,但没弄清楚原因。 这有点奇怪,可以帮助你find答案。

CalendarView缓慢时的CPU消耗 在此处输入图像描述

WeekAdapter中的getView具有从未使用过的param父级。

  public View getView(int position, View convertView, ViewGroup parent) { WeekView weekView = null; if (convertView != null) { weekView = (WeekView) convertView; } else { weekView = new WeekView(mContext); android.widget.AbsListView.LayoutParams params = new android.widget.AbsListView.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); weekView.setLayoutParams(params); weekView.setClickable(true); weekView.setOnTouchListener(this); } int selectedWeekDay = (mSelectedWeek == position) ? mSelectedDate.get( Calendar.DAY_OF_WEEK) : -1; weekView.init(position, selectedWeekDay, mFocusedMonth); return weekView; } 

期待着答案。

似乎直接在RelativeLayout内部的CalendarView确实不能很好地工作。 使用FrameLayout的技巧的以下解决方案在模拟器中加载速度要快得多:

          

发现CalendarView小部件需要将height设置为match_parent ,然后您可以将它放到任何布局中。 例如,相对于高度200.这在4.0.3模拟器和三星Galaxy Tab 4.2.2上工作正常。

        

将CalendarView放在FrameLayout中将解决问题..这是一个XML代码示例:

       

上面的答案是正确的,但仍然没有解开一个谜。

也就是说,当我想在其他布局中包含内部布局的calendarview时。 它只是消失或我只能看到周信。 我尝试了上面的匹配父母和一切,但我仍然无法解决它。

如果有人像我一样挣扎,这就是答案。

      ///Your views />