这让我快发疯了。我的Android应用程序中有一个片段,它是使用相对论工具来布局的。问题是,由于某些原因,渲染需要很长时间,仅在屏幕上加载大约4个元素大约需要5秒钟。
其中一个元素是CalendarView,当我删除它时,它会恢复到适当的速度(即:即时)。我想这个问题与我要求Android系统布局的方式有关,一定没有太大意义,或者效率低下。
以下是XML文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp">
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="TODAY"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/time" />
<TextView
android:id="@id/time"
android:gravity="right"
android:textStyle="bold"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="11:32"
android:textAppearance="?android:attr/textAppearanceLarge"
android:layout_alignParentRight="true" />
<TextView
android:id="@+id/date_info"
android:layout_margin="20dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Wednesday, 15th August 2012"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_below="@id/title"
android:layout_alignParentLeft="true" />
<CalendarView
android:id="@+id/calendar_view"
android:layout_width="250dp"
android:layout_height="250dp"
android:background="@drawable/white_back_black_border"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" />
</RelativeLayout>
我尝试了很多不同的布局选项,但删除日历似乎是唯一能起作用的。
任何见解都将不胜感激。谢啦
似乎直接在RelativeLayout中的CalendarView真的没有那么好用。使用FrameLayout的以下解决方案在emulator中的加载速度更快:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp" >
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_toLeftOf="@+id/time"
android:text="TODAY"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold" />
<TextView
android:id="@id/time"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:gravity="right"
android:text="11:32"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold" />
<TextView
android:id="@+id/date_info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@id/title"
android:layout_margin="20dp"
android:text="Wednesday, 15th August 2012"
android:textAppearance="?android:attr/textAppearanceMedium" />
<FrameLayout
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" >
<CalendarView
android:id="@+id/calendar_view"
android:layout_width="250dp"
android:layout_height="250dp"
android:background="@drawable/white_back_black_border" />
</FrameLayout>
</RelativeLayout>
我花了几个小时才找到答案,但还不知道为什么。这里有件奇怪的事,也许它能帮你找到答案。
的getView在周适配器有一个参数父从未使用。
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;
}
期待答案。
我也遇到过这个问题,包括相对布局和线性布局。它似乎与布局无关。
这里有一个例子可以看到错误,只是一个简单的布局,根本没有代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".FechaHoraActivity" >
<TimePicker
android:id="@+id/timePicker1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp" />
<CalendarView
android:id="@+id/calendarView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
现在只需将线性布局高度更改为:
android:layout_height="match_parent"
有了这个改变,问题就消失了,至少在我的三星Galaxy标签2中是这样
所以它似乎与“空间”更相关,但我仍然不确定为什么会出现这个问题。我还没有在谷歌搜索“calendarview slow”上找到任何其他有趣的结果。。。
让我们看看是否能找到一个小赏金的答案
我的iOS应用程序随机崩溃。当internet连接速度慢时,就会发生这种情况。我办公室网速太快了。 为了在模拟器上进行测试,我安装了这里提到的网络链接调理器:安装苹果的网络链接调理器工具 现在的问题是,我选择了一个较慢的连接配置文件,但我仍然拥有模拟器中正常(快速)的互联网速度。 我还创建了自己的配置文件,并将下载带宽设置为5Kbps,但仍然没用。 我有:Mackbook retina,OSX 1
我正在使用DrawerLayout作为左幻灯片菜单。当我使用图像作为背景时,我的应用程序变得很慢。另一方面,当我使用颜色作为背景时,它会变得平滑。 我的代码是 这里我的背景图像是我不知道如何克服这个问题并实现平滑的滑动。 我的背景图片。
问题内容: MySQL文档说: 假设B树索引,表的大小会减慢日志N的索引插入速度。 这是否意味着对于每个新行的插入,插入速度将降低log N倍,其中N是行数?即使我只在一个查询中插入所有行?即: 其中n为〜70,000 我目前在一个表格中约有147万行,其结构如下: 当我以上述方式插入事务时,提交时间约为275秒。我该如何优化这一点,因为每天都会添加新数据,并且插入时间只会继续变慢。 此外,除了查
我在我的网站上包括了Qtip2,并使用了以下代码段,而这些文件托管在我自己的服务器上,如下所述: 虽然与网站托管在同一服务器上,但脚本从Qtip2的CDN加载以下附加文件: https://cdnjs.cloudflare.com/ajax/libs/qtip2/2.2.0/jquery.qtip.min.map 我找不到这方面的任何信息。你知道如何避免(如果没有必要)或在我自己的服务器上替换和托
我正在使用编年史地图来临时存储/查找大量的KV对(实际上是数十亿)。我不需要持久性或复制,我使用的是内存映射文件,而不是纯堆外内存。平均密钥长度为8字节。 对于较小的数据集--多达2亿个条目--我得到的吞吐量约为每秒100万个条目,即创建条目需要大约200秒,这是惊人的,但到了4亿个条目时,地图已经显著放缓,创建它们需要1500秒。 我已经在Mac OSX/16GB四核/500GB SSD和Pro
问题内容: 简而言之,场景:一个拥有超过1600万条记录[2GB大小]的表。当使用ORDER BY * primary_key *时,SELECT的LIMIT偏移量越高,查询速度就越慢 所以 花费不到 那只订购30条记录,并且无论如何都相同。因此,这不是ORDER BY的开销。 现在,当获取最新的30行时,大约需要180秒。如何优化该简单查询? 问题答案: 通常,较高的偏移量会使查询速度变慢,因为